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
- loginstatus.cs
- Storyboard.cs
- RequestResizeEvent.cs
- CodeAttributeDeclarationCollection.cs
- ToolboxItemAttribute.cs
- GlobalProxySelection.cs
- HMACSHA1.cs
- AuthorizationRule.cs
- CompilerCollection.cs
- WebPartsPersonalizationAuthorization.cs
- MouseOverProperty.cs
- odbcmetadatacolumnnames.cs
- OdbcError.cs
- FlowLayoutSettings.cs
- SuppressIldasmAttribute.cs
- PartialCachingControl.cs
- SlotInfo.cs
- RepeatButtonAutomationPeer.cs
- AtomMaterializer.cs
- GridViewAutomationPeer.cs
- EpmCustomContentDeSerializer.cs
- StreamAsIStream.cs
- UrlAuthorizationModule.cs
- SmtpSection.cs
- AddInController.cs
- XmlUtilWriter.cs
- DebugHandleTracker.cs
- PageParser.cs
- NotifyParentPropertyAttribute.cs
- ItemsPanelTemplate.cs
- HttpFileCollection.cs
- GuidelineCollection.cs
- BindingValueChangedEventArgs.cs
- objectresult_tresulttype.cs
- GrammarBuilderDictation.cs
- SequentialActivityDesigner.cs
- ContentType.cs
- AtomServiceDocumentSerializer.cs
- FrameworkElementAutomationPeer.cs
- XmlSchemaParticle.cs
- mediaclock.cs
- SurrogateEncoder.cs
- WhitespaceRuleReader.cs
- MultiBindingExpression.cs
- CurrencyWrapper.cs
- Authorization.cs
- TemplatedWizardStep.cs
- TextContainerChangedEventArgs.cs
- TraceInternal.cs
- GcHandle.cs
- UInt64.cs
- PropVariant.cs
- PngBitmapDecoder.cs
- DocumentReferenceCollection.cs
- Token.cs
- CommandValueSerializer.cs
- ControlBuilderAttribute.cs
- XmlSchemaProviderAttribute.cs
- APCustomTypeDescriptor.cs
- TreeViewItem.cs
- SAPIEngineTypes.cs
- QuadraticBezierSegment.cs
- IgnoreFileBuildProvider.cs
- DesignSurface.cs
- UnitControl.cs
- UnsupportedPolicyOptionsException.cs
- Int16KeyFrameCollection.cs
- UndirectedGraph.cs
- InternalTypeHelper.cs
- SqlNode.cs
- DecimalStorage.cs
- ContentFileHelper.cs
- Wizard.cs
- AlternateViewCollection.cs
- ExpanderAutomationPeer.cs
- Blend.cs
- HotSpotCollection.cs
- TextPointerBase.cs
- RangeContentEnumerator.cs
- GlyphRunDrawing.cs
- OdbcError.cs
- WorkflowElementDialogWindow.xaml.cs
- CaseInsensitiveHashCodeProvider.cs
- NamespaceList.cs
- XmlNamedNodeMap.cs
- InputDevice.cs
- MD5CryptoServiceProvider.cs
- InheritedPropertyChangedEventArgs.cs
- PrivilegedConfigurationManager.cs
- CompilerErrorCollection.cs
- RegexCapture.cs
- Positioning.cs
- Zone.cs
- PowerEase.cs
- Light.cs
- HtmlImage.cs
- SqlConnectionPoolGroupProviderInfo.cs
- ExpressionBuilderCollection.cs
- SectionInformation.cs
- Decimal.cs