Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / Media / textformatting / TextEmbeddedObject.cs / 1 / TextEmbeddedObject.cs
//------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2004 // // File: TextEmbeddedObject.cs // // Contents: Definition of text embedded object // // Spec: http://avalon/text/DesignDocsAndSpecs/Text%20Formatting%20API.doc // // Created: 1-2-2004 Worachai Chaoweeraprasit (wchao) // //----------------------------------------------------------------------- using System; using System.Collections; using System.Windows; using System.Windows.Media; using MS.Internal.TextFormatting; namespace System.Windows.Media.TextFormatting { ////// Provide definition for a kind of text content in which measuring, hittesting /// and drawing of the entire content is done in whole. Example of that kind of /// content is a button in the middle of the line. /// public abstract class TextEmbeddedObject : TextRun { ////// Line break condition before text object /// public abstract LineBreakCondition BreakBefore { get; } ////// Line break condition after text object /// public abstract LineBreakCondition BreakAfter { get; } ////// Flag indicates whether text object has fixed size regardless of where /// it is placed within a line /// public abstract bool HasFixedSize { get; } ////// Get text object measurement metrics that will fit within the specified /// remaining width of the paragraph /// /// remaining paragraph width ///text object metrics public abstract TextEmbeddedObjectMetrics Format( double remainingParagraphWidth ); ////// Get computed bounding box of text object /// /// run is drawn from right to left /// run is drawn with its side parallel to baseline ///computed bounding box size of text object public abstract Rect ComputeBoundingBox( bool rightToLeft, bool sideways ); ////// Draw text object /// /// drawing context /// origin where the object is drawn /// run is drawn from right to left /// run is drawn with its side parallel to baseline public abstract void Draw( DrawingContext drawingContext, Point origin, bool rightToLeft, bool sideways ); } ////// Text object properties /// public class TextEmbeddedObjectMetrics { private double _width; private double _height; private double _baseline; ////// Construct a text object size /// /// object width /// object height /// object baseline in ratio relative to run height public TextEmbeddedObjectMetrics( double width, double height, double baseline ) { _width = width; _height = height; _baseline = baseline; } ////// Object width /// public double Width { get { return _width; } } ////// Object height /// ///public double Height { get { return _height; } } /// /// Object baseline in ratio relative to run height /// public double Baseline { get { return _baseline; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2004 // // File: TextEmbeddedObject.cs // // Contents: Definition of text embedded object // // Spec: http://avalon/text/DesignDocsAndSpecs/Text%20Formatting%20API.doc // // Created: 1-2-2004 Worachai Chaoweeraprasit (wchao) // //----------------------------------------------------------------------- using System; using System.Collections; using System.Windows; using System.Windows.Media; using MS.Internal.TextFormatting; namespace System.Windows.Media.TextFormatting { ////// Provide definition for a kind of text content in which measuring, hittesting /// and drawing of the entire content is done in whole. Example of that kind of /// content is a button in the middle of the line. /// public abstract class TextEmbeddedObject : TextRun { ////// Line break condition before text object /// public abstract LineBreakCondition BreakBefore { get; } ////// Line break condition after text object /// public abstract LineBreakCondition BreakAfter { get; } ////// Flag indicates whether text object has fixed size regardless of where /// it is placed within a line /// public abstract bool HasFixedSize { get; } ////// Get text object measurement metrics that will fit within the specified /// remaining width of the paragraph /// /// remaining paragraph width ///text object metrics public abstract TextEmbeddedObjectMetrics Format( double remainingParagraphWidth ); ////// Get computed bounding box of text object /// /// run is drawn from right to left /// run is drawn with its side parallel to baseline ///computed bounding box size of text object public abstract Rect ComputeBoundingBox( bool rightToLeft, bool sideways ); ////// Draw text object /// /// drawing context /// origin where the object is drawn /// run is drawn from right to left /// run is drawn with its side parallel to baseline public abstract void Draw( DrawingContext drawingContext, Point origin, bool rightToLeft, bool sideways ); } ////// Text object properties /// public class TextEmbeddedObjectMetrics { private double _width; private double _height; private double _baseline; ////// Construct a text object size /// /// object width /// object height /// object baseline in ratio relative to run height public TextEmbeddedObjectMetrics( double width, double height, double baseline ) { _width = width; _height = height; _baseline = baseline; } ////// Object width /// public double Width { get { return _width; } } ////// Object height /// ///public double Height { get { return _height; } } /// /// Object baseline in ratio relative to run height /// public double Baseline { get { return _baseline; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RolePrincipal.cs
- ISFClipboardData.cs
- CaseKeyBox.ViewModel.cs
- NativeMethodsCLR.cs
- X509ChainElement.cs
- RelOps.cs
- HttpResponseHeader.cs
- IImplicitResourceProvider.cs
- FontCacheUtil.cs
- SizeAnimationBase.cs
- MethodRental.cs
- TiffBitmapEncoder.cs
- CorrelationTokenTypeConvertor.cs
- RuntimeArgumentHandle.cs
- ISO2022Encoding.cs
- Utils.cs
- HierarchicalDataSourceControl.cs
- RuleSettingsCollection.cs
- Blend.cs
- SessionIDManager.cs
- MailSettingsSection.cs
- XmlDocumentFragment.cs
- RewritingSimplifier.cs
- Relationship.cs
- SoapConverter.cs
- AutomationIdentifierGuids.cs
- TemplateKey.cs
- ObjectKeyFrameCollection.cs
- DataSourceListEditor.cs
- ComplexLine.cs
- SingleResultAttribute.cs
- DynamicPropertyHolder.cs
- FileCodeGroup.cs
- ValueChangedEventManager.cs
- ListControl.cs
- DesignerTransaction.cs
- ListenerBinder.cs
- RowToParametersTransformer.cs
- AsyncPostBackTrigger.cs
- Rotation3DAnimationUsingKeyFrames.cs
- FilteredDataSetHelper.cs
- XmlDictionaryWriter.cs
- WsatServiceAddress.cs
- _IPv4Address.cs
- StrongNameUtility.cs
- WebHttpBehavior.cs
- LocalizableAttribute.cs
- EventLogPermission.cs
- LZCodec.cs
- ArraySegment.cs
- InfoCardProofToken.cs
- Slider.cs
- DataSourceXmlTextReader.cs
- ThreadAbortException.cs
- Rfc2898DeriveBytes.cs
- HMACMD5.cs
- CustomTrackingQuery.cs
- OleDbConnectionFactory.cs
- ContextQuery.cs
- BoundPropertyEntry.cs
- SqlDataSourceQuery.cs
- Soap11ServerProtocol.cs
- Lease.cs
- DataGridViewCellStyleChangedEventArgs.cs
- ReaderWriterLockSlim.cs
- ReflectionTypeLoadException.cs
- NavigationPropertyEmitter.cs
- XmlSchemaExternal.cs
- SystemFonts.cs
- ButtonColumn.cs
- DefaultValueConverter.cs
- BulletedListEventArgs.cs
- DSACryptoServiceProvider.cs
- UnicastIPAddressInformationCollection.cs
- HttpCacheVary.cs
- EntityCollectionChangedParams.cs
- InvalidComObjectException.cs
- BulletChrome.cs
- ThreadAttributes.cs
- TypeLoadException.cs
- ReversePositionQuery.cs
- FixedBufferAttribute.cs
- TextClipboardData.cs
- EmbeddedObject.cs
- UIElement.cs
- SqlFunctionAttribute.cs
- BufferModeSettings.cs
- DetailsViewRowCollection.cs
- AttachInfo.cs
- TransformGroup.cs
- GridLength.cs
- NamespaceList.cs
- HostProtectionException.cs
- CloudCollection.cs
- CalendarData.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- HttpConfigurationSystem.cs
- TypeUnloadedException.cs
- HttpModuleActionCollection.cs
- PriorityChain.cs