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
- AttachedPropertyMethodSelector.cs
- Calendar.cs
- IPEndPoint.cs
- DataMemberConverter.cs
- PrivilegedConfigurationManager.cs
- DesignSurfaceCollection.cs
- DispatcherExceptionFilterEventArgs.cs
- ProvideValueServiceProvider.cs
- UIHelper.cs
- StringConcat.cs
- xsdvalidator.cs
- UIElementParagraph.cs
- Image.cs
- WeakEventManager.cs
- UserPreferenceChangingEventArgs.cs
- SearchExpression.cs
- LocalizabilityAttribute.cs
- KerberosRequestorSecurityToken.cs
- BoolExpr.cs
- FrameDimension.cs
- CodePageUtils.cs
- ByValueEqualityComparer.cs
- ButtonBaseAdapter.cs
- DiscoveryClientDuplexChannel.cs
- Delegate.cs
- ScrollEventArgs.cs
- HostingEnvironment.cs
- ClassHandlersStore.cs
- SQLDoubleStorage.cs
- DecimalAnimationUsingKeyFrames.cs
- ProfileGroupSettingsCollection.cs
- WebHttpBehavior.cs
- ConfigXmlText.cs
- ToolStrip.cs
- ListViewAutomationPeer.cs
- StringToken.cs
- XmlSchemaComplexType.cs
- Pen.cs
- baseaxisquery.cs
- Misc.cs
- TextControl.cs
- Publisher.cs
- PolyLineSegmentFigureLogic.cs
- FileRecordSequence.cs
- HandlerFactoryCache.cs
- Rotation3DAnimationBase.cs
- AdornerLayer.cs
- Debug.cs
- DesignerRegionCollection.cs
- BroadcastEventHelper.cs
- MarkupExtensionReturnTypeAttribute.cs
- TextTreeUndoUnit.cs
- ConfigXmlWhitespace.cs
- DataGridHeaderBorder.cs
- BrowserTree.cs
- SafeEventLogReadHandle.cs
- UpdateCommand.cs
- ArgumentValueSerializer.cs
- QueueTransferProtocol.cs
- SamlConditions.cs
- Figure.cs
- ReadOnlyNameValueCollection.cs
- InvalidOleVariantTypeException.cs
- TemplateBaseAction.cs
- FileClassifier.cs
- XmlAtomicValue.cs
- DurationConverter.cs
- HttpContextWrapper.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- XmlBinaryWriter.cs
- MultiBindingExpression.cs
- XmlElementAttribute.cs
- CompositeDesignerAccessibleObject.cs
- PropertyChangeTracker.cs
- RotateTransform.cs
- WeakReferenceEnumerator.cs
- PageThemeCodeDomTreeGenerator.cs
- UnescapedXmlDiagnosticData.cs
- FactoryMaker.cs
- SchemaImporter.cs
- versioninfo.cs
- LicenseManager.cs
- BinaryParser.cs
- SqlConnection.cs
- FrameworkRichTextComposition.cs
- Math.cs
- CodeObject.cs
- ConversionContext.cs
- Keywords.cs
- LoginAutoFormat.cs
- IntegrationExceptionEventArgs.cs
- FlowNode.cs
- ColumnMapTranslator.cs
- CodeMemberMethod.cs
- WebHttpBindingCollectionElement.cs
- SessionIDManager.cs
- X509RawDataKeyIdentifierClause.cs
- SelectionHighlightInfo.cs
- CSharpCodeProvider.cs
- ContextQuery.cs