Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- PerformanceCounterPermissionEntryCollection.cs
- BindingParameterCollection.cs
- BaseCodeDomTreeGenerator.cs
- HttpWebRequestElement.cs
- StatusBarItemAutomationPeer.cs
- HttpListenerResponse.cs
- TableLayoutSettings.cs
- BitmapPalette.cs
- CurrencyWrapper.cs
- FunctionNode.cs
- WmpBitmapEncoder.cs
- Wildcard.cs
- ObfuscateAssemblyAttribute.cs
- PhysicalFontFamily.cs
- Line.cs
- StubHelpers.cs
- MemoryResponseElement.cs
- TransformerInfo.cs
- HelpEvent.cs
- ResumeStoryboard.cs
- SecurityHeaderTokenResolver.cs
- RequestCachingSection.cs
- ConversionContext.cs
- KeyFrames.cs
- CodeSnippetCompileUnit.cs
- TypefaceCollection.cs
- OracleParameterCollection.cs
- TemplateNameScope.cs
- NotSupportedException.cs
- CompatibleComparer.cs
- ScriptControlManager.cs
- ByteKeyFrameCollection.cs
- PageCopyCount.cs
- SQLInt64.cs
- HorizontalAlignConverter.cs
- SecUtil.cs
- BeginEvent.cs
- MembershipPasswordException.cs
- FontFamilyConverter.cs
- SystemFonts.cs
- RecipientIdentity.cs
- AccessViolationException.cs
- Stream.cs
- ThrowOnMultipleAssignment.cs
- Bezier.cs
- OAVariantLib.cs
- StrokeNodeEnumerator.cs
- TimeoutValidationAttribute.cs
- ToolStripManager.cs
- TextWriter.cs
- Track.cs
- TabletCollection.cs
- DragStartedEventArgs.cs
- EventLogTraceListener.cs
- ForwardPositionQuery.cs
- LocationInfo.cs
- StorageAssociationSetMapping.cs
- unsafeIndexingFilterStream.cs
- FixedSOMLineRanges.cs
- FaultDescription.cs
- OutgoingWebRequestContext.cs
- HttpProfileGroupBase.cs
- DataGridViewDesigner.cs
- MobileRedirect.cs
- DocumentXmlWriter.cs
- CodeTypeDeclarationCollection.cs
- ADConnectionHelper.cs
- QuaternionRotation3D.cs
- TagMapCollection.cs
- grammarelement.cs
- lengthconverter.cs
- ReferenceEqualityComparer.cs
- EnterpriseServicesHelper.cs
- DeviceSpecificChoice.cs
- DocumentViewerBase.cs
- _AcceptOverlappedAsyncResult.cs
- EmptyControlCollection.cs
- PackUriHelper.cs
- XmlName.cs
- PeerUnsafeNativeMethods.cs
- TextRangeAdaptor.cs
- ToolBarTray.cs
- SecurityDocument.cs
- SchemaReference.cs
- GroupItem.cs
- CodeBlockBuilder.cs
- GlobalEventManager.cs
- SingleKeyFrameCollection.cs
- WCFServiceClientProxyGenerator.cs
- BoolExpr.cs
- HttpGetClientProtocol.cs
- FontCacheUtil.cs
- DefinitionBase.cs
- DataService.cs
- RoutedEventValueSerializer.cs
- ElementHostAutomationPeer.cs
- MailWebEventProvider.cs
- GridItemPatternIdentifiers.cs
- XmlAtomicValue.cs
- EntityContainerAssociationSet.cs