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
- CollectionAdapters.cs
- PagerSettings.cs
- PagesSection.cs
- IList.cs
- Matrix3D.cs
- InProcStateClientManager.cs
- InternalBufferOverflowException.cs
- SqlUdtInfo.cs
- HebrewCalendar.cs
- XmlCharType.cs
- Condition.cs
- LayoutSettings.cs
- TraceSwitch.cs
- CompilationUtil.cs
- NativeMethods.cs
- ListViewCommandEventArgs.cs
- ClientRoleProvider.cs
- DataGridViewHitTestInfo.cs
- SchemaNotation.cs
- BridgeDataReader.cs
- BrushMappingModeValidation.cs
- HyperLinkField.cs
- BigIntegerStorage.cs
- TextProperties.cs
- SimpleWorkerRequest.cs
- GridViewUpdatedEventArgs.cs
- JavaScriptString.cs
- ParameterBinding.cs
- RotateTransform3D.cs
- CFStream.cs
- MethodMessage.cs
- LabelLiteral.cs
- ResourceBinder.cs
- DesignBindingEditor.cs
- FixedFlowMap.cs
- DNS.cs
- ManageRequest.cs
- wmiprovider.cs
- DayRenderEvent.cs
- ClockController.cs
- EventLogger.cs
- PropertyCollection.cs
- DataRowExtensions.cs
- DocumentEventArgs.cs
- AnnotationHelper.cs
- filewebrequest.cs
- TypeBuilderInstantiation.cs
- UICuesEvent.cs
- Vector3DCollectionConverter.cs
- PeerNameRecord.cs
- ICspAsymmetricAlgorithm.cs
- UndoUnit.cs
- SoapEnvelopeProcessingElement.cs
- CodeTypeDelegate.cs
- SamlEvidence.cs
- ReadOnlyPropertyMetadata.cs
- ListView.cs
- AttachmentService.cs
- ImageMap.cs
- Application.cs
- ContourSegment.cs
- DocumentViewerConstants.cs
- QilList.cs
- SizeValueSerializer.cs
- UdpChannelFactory.cs
- StringInfo.cs
- WebPartConnection.cs
- TimeEnumHelper.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- ImageKeyConverter.cs
- EdmToObjectNamespaceMap.cs
- StrongNamePublicKeyBlob.cs
- RelationshipSet.cs
- DPAPIProtectedConfigurationProvider.cs
- SubMenuStyle.cs
- XmlDomTextWriter.cs
- CompiledQueryCacheKey.cs
- File.cs
- versioninfo.cs
- DynamicDocumentPaginator.cs
- SQLStringStorage.cs
- VariableValue.cs
- NamespaceEmitter.cs
- TextRunCache.cs
- MetafileHeaderWmf.cs
- FixedSOMFixedBlock.cs
- MemberJoinTreeNode.cs
- BamlTreeMap.cs
- SizeChangedEventArgs.cs
- SqlSelectStatement.cs
- DataTemplateKey.cs
- UxThemeWrapper.cs
- TextTreeUndoUnit.cs
- SortKey.cs
- Registry.cs
- RightsManagementProvider.cs
- InputProcessorProfiles.cs
- SqlWebEventProvider.cs
- ColumnResizeUndoUnit.cs
- HelpEvent.cs