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
- CompilationRelaxations.cs
- ActiveXHost.cs
- Graph.cs
- LineSegment.cs
- XmlSchemaCompilationSettings.cs
- DesignerRegionCollection.cs
- TogglePattern.cs
- PenContext.cs
- DurableEnlistmentState.cs
- ContextMenu.cs
- CallSiteOps.cs
- WebServiceErrorEvent.cs
- DataKeyCollection.cs
- UIHelper.cs
- SplitterCancelEvent.cs
- DataGridRowClipboardEventArgs.cs
- SqlDelegatedTransaction.cs
- ContextInformation.cs
- ObjectDataSource.cs
- SizeFConverter.cs
- BitmapFrame.cs
- TransactionException.cs
- TextRenderer.cs
- HttpProxyCredentialType.cs
- ExpandedWrapper.cs
- FrameworkTemplate.cs
- EdmFunctions.cs
- ToolStripSystemRenderer.cs
- ClearCollection.cs
- UnsafeNativeMethods.cs
- ComponentCollection.cs
- Scanner.cs
- SignatureConfirmations.cs
- mediaclock.cs
- StylusButtonCollection.cs
- SamlAuthorityBinding.cs
- CombinedHttpChannel.cs
- HtmlElement.cs
- WindowsFont.cs
- HTTPNotFoundHandler.cs
- _SslState.cs
- OdbcFactory.cs
- _ShellExpression.cs
- AuthenticateEventArgs.cs
- PasswordPropertyTextAttribute.cs
- WmpBitmapEncoder.cs
- DropDownList.cs
- DataGridViewControlCollection.cs
- LinearGradientBrush.cs
- ErrorFormatterPage.cs
- UITypeEditor.cs
- MediaTimeline.cs
- DetailsViewRow.cs
- Vector3dCollection.cs
- TextModifierScope.cs
- FloatMinMaxAggregationOperator.cs
- CloudCollection.cs
- Group.cs
- DependsOnAttribute.cs
- EventSinkActivity.cs
- RIPEMD160Managed.cs
- InputScopeConverter.cs
- PKCS1MaskGenerationMethod.cs
- PolyBezierSegmentFigureLogic.cs
- XmlTextEncoder.cs
- SessionMode.cs
- StdValidatorsAndConverters.cs
- BitmapEffect.cs
- SourceFileBuildProvider.cs
- DiscoveryClientDuplexChannel.cs
- COM2ExtendedUITypeEditor.cs
- ApplicationId.cs
- ToolStripAdornerWindowService.cs
- KeyTime.cs
- XmlSerializerNamespaces.cs
- CodeIndexerExpression.cs
- invalidudtexception.cs
- DropTarget.cs
- SettingsSavedEventArgs.cs
- UIElement3DAutomationPeer.cs
- SspiWrapper.cs
- RegexReplacement.cs
- DefaultHttpHandler.cs
- CompiledQueryCacheKey.cs
- RC2CryptoServiceProvider.cs
- QueryOperationResponseOfT.cs
- XslException.cs
- MessageQueueTransaction.cs
- OleDbDataAdapter.cs
- __TransparentProxy.cs
- DelegateBodyWriter.cs
- ProxySimple.cs
- BaseConfigurationRecord.cs
- CompilerGeneratedAttribute.cs
- EditorZone.cs
- MessageAction.cs
- StrongNameSignatureInformation.cs
- AssemblyName.cs
- XPathSelfQuery.cs
- SoundPlayerAction.cs