Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- UInt16Storage.cs
- InvalidMessageContractException.cs
- CallContext.cs
- SafeFileHandle.cs
- KeyNotFoundException.cs
- DocumentOrderQuery.cs
- Point3DAnimationUsingKeyFrames.cs
- IsolatedStorageFile.cs
- InternalConfigRoot.cs
- MouseOverProperty.cs
- PolicyValidationException.cs
- DbInsertCommandTree.cs
- FormattedText.cs
- IPEndPoint.cs
- TypefaceMap.cs
- CapacityStreamGeometryContext.cs
- DetailsViewInsertedEventArgs.cs
- AvTraceDetails.cs
- ColumnReorderedEventArgs.cs
- StickyNoteAnnotations.cs
- LoadWorkflowAsyncResult.cs
- WebCodeGenerator.cs
- ExcludePathInfo.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- Msec.cs
- SiteIdentityPermission.cs
- SymmetricSecurityProtocolFactory.cs
- CapabilitiesSection.cs
- HttpWebResponse.cs
- VScrollProperties.cs
- SecureConversationServiceCredential.cs
- Membership.cs
- ResourceAttributes.cs
- XmlDataProvider.cs
- DataGridViewCellConverter.cs
- Win32PrintDialog.cs
- HtmlTableCell.cs
- XmlDataDocument.cs
- UnsafeNativeMethods.cs
- ArraySubsetEnumerator.cs
- SID.cs
- InlineObject.cs
- ModelTypeConverter.cs
- QueryCacheManager.cs
- IntranetCredentialPolicy.cs
- DataGridItemEventArgs.cs
- ScrollEventArgs.cs
- SplitterPanel.cs
- DisableDpiAwarenessAttribute.cs
- GroupBoxRenderer.cs
- StringSource.cs
- ContractNamespaceAttribute.cs
- Component.cs
- ScalarConstant.cs
- MaskDesignerDialog.cs
- Timeline.cs
- PropertiesTab.cs
- RequestNavigateEventArgs.cs
- __TransparentProxy.cs
- Typeface.cs
- DSGeneratorProblem.cs
- EntityStoreSchemaGenerator.cs
- BaseAsyncResult.cs
- DataColumnChangeEvent.cs
- AuthenticateEventArgs.cs
- ConstraintEnumerator.cs
- ReadOnlyMetadataCollection.cs
- GrammarBuilderWildcard.cs
- StaticExtensionConverter.cs
- LiteralTextParser.cs
- CompositeDispatchFormatter.cs
- BitmapEffectInput.cs
- ExternalDataExchangeService.cs
- Base64Encoder.cs
- AdvancedBindingPropertyDescriptor.cs
- ApplicationProxyInternal.cs
- OrderPreservingPipeliningSpoolingTask.cs
- SecurityChannel.cs
- CompositeControl.cs
- GenerateDerivedKeyRequest.cs
- ProcessHostMapPath.cs
- OutputWindow.cs
- GraphicsPathIterator.cs
- DataBinding.cs
- RuntimeVariablesExpression.cs
- TextBoxRenderer.cs
- TextTreeFixupNode.cs
- TrustManager.cs
- ToolStripGripRenderEventArgs.cs
- WebServiceEnumData.cs
- FilterableAttribute.cs
- PointKeyFrameCollection.cs
- EncoderFallback.cs
- RegionData.cs
- DataSourceHelper.cs
- CompilerParameters.cs
- XmlDataSource.cs
- EventLogQuery.cs
- ObfuscationAttribute.cs
- DependentList.cs