Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / textformatting / TextEmbeddedObject.cs / 1305600 / 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
- ConstantSlot.cs
- LocationSectionRecord.cs
- xml.cs
- SynchronizedInputProviderWrapper.cs
- DescriptionAttribute.cs
- TableRowGroup.cs
- ComEventsInfo.cs
- XsltArgumentList.cs
- EntityStoreSchemaFilterEntry.cs
- StrongTypingException.cs
- SatelliteContractVersionAttribute.cs
- RealProxy.cs
- BitHelper.cs
- RandomNumberGenerator.cs
- SystemColorTracker.cs
- SignatureTargetIdManager.cs
- Missing.cs
- SocketException.cs
- Parser.cs
- ScriptComponentDescriptor.cs
- HebrewNumber.cs
- Hashtable.cs
- SmtpReplyReader.cs
- CngAlgorithmGroup.cs
- FloaterBaseParagraph.cs
- FixedPage.cs
- TrustManager.cs
- ObjectViewEntityCollectionData.cs
- VirtualPathData.cs
- ChineseLunisolarCalendar.cs
- ProfilePropertyMetadata.cs
- ExtendedProtectionPolicy.cs
- IListConverters.cs
- XmlDocumentSerializer.cs
- BulletedListEventArgs.cs
- Codec.cs
- Manipulation.cs
- ColorBlend.cs
- CodeVariableDeclarationStatement.cs
- cookieexception.cs
- ColorDialog.cs
- HttpFileCollection.cs
- SplitterEvent.cs
- IntSecurity.cs
- TextServicesCompartmentEventSink.cs
- ItemChangedEventArgs.cs
- SchemaCollectionCompiler.cs
- PeerContact.cs
- XmlLinkedNode.cs
- DataBoundLiteralControl.cs
- BaseProcessProtocolHandler.cs
- ConfigurationLocationCollection.cs
- SID.cs
- DBConnection.cs
- HtmlElementEventArgs.cs
- UnauthorizedWebPart.cs
- PageTheme.cs
- DataBindEngine.cs
- ExtensionQuery.cs
- Cursors.cs
- SmiEventSink.cs
- InvalidWMPVersionException.cs
- HttpListenerTimeoutManager.cs
- ObjectReferenceStack.cs
- Closure.cs
- WeakReadOnlyCollection.cs
- RectConverter.cs
- GatewayDefinition.cs
- SmtpNtlmAuthenticationModule.cs
- SQLInt32Storage.cs
- XsltSettings.cs
- EndPoint.cs
- KoreanCalendar.cs
- ArgumentOutOfRangeException.cs
- Int32CollectionValueSerializer.cs
- DesigntimeLicenseContextSerializer.cs
- KeyFrames.cs
- TextEndOfSegment.cs
- CapabilitiesUse.cs
- KeyNotFoundException.cs
- DateTimeFormatInfo.cs
- AdornerPresentationContext.cs
- RowToParametersTransformer.cs
- XsltContext.cs
- HandlerFactoryWrapper.cs
- SQLMembershipProvider.cs
- OledbConnectionStringbuilder.cs
- PrintingPermissionAttribute.cs
- Guid.cs
- Tag.cs
- WindowsTokenRoleProvider.cs
- RightsManagementSuppressedStream.cs
- XmlDesignerDataSourceView.cs
- VirtualizingPanel.cs
- ScriptManagerProxy.cs
- WebRequestModuleElementCollection.cs
- WCFServiceClientProxyGenerator.cs
- DecimalAnimationUsingKeyFrames.cs
- Buffer.cs
- DelegatingTypeDescriptionProvider.cs