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
- MarkupExtensionSerializer.cs
- StartUpEventArgs.cs
- BatchStream.cs
- EventLogPermissionEntry.cs
- GraphicsPath.cs
- MsmqChannelFactory.cs
- GenericEnumConverter.cs
- SystemIPv6InterfaceProperties.cs
- TraceSwitch.cs
- UserPreferenceChangingEventArgs.cs
- RsaSecurityKey.cs
- ErrorHandler.cs
- ListItemCollection.cs
- ConnectionInterfaceCollection.cs
- RandomDelaySendsAsyncResult.cs
- Enumerable.cs
- XmlSchemaDatatype.cs
- HGlobalSafeHandle.cs
- Timeline.cs
- WebPartEditorCancelVerb.cs
- IChannel.cs
- DataGridViewButtonColumn.cs
- BinaryFormatter.cs
- InputLanguageCollection.cs
- XmlSerializationGeneratedCode.cs
- PolicyLevel.cs
- PersianCalendar.cs
- Facet.cs
- EncodingNLS.cs
- LocatorBase.cs
- MailBnfHelper.cs
- KeyManager.cs
- TimeoutException.cs
- TiffBitmapEncoder.cs
- IntellisenseTextBox.designer.cs
- DataServiceKeyAttribute.cs
- ArrangedElement.cs
- DispatcherObject.cs
- ForwardPositionQuery.cs
- DataGridViewHeaderCell.cs
- TraceUtility.cs
- HasCopySemanticsAttribute.cs
- DataGridViewButtonCell.cs
- XsltConvert.cs
- HitTestFilterBehavior.cs
- RequestResizeEvent.cs
- RenamedEventArgs.cs
- WorkflowRuntimeEndpoint.cs
- FileSystemWatcher.cs
- DiffuseMaterial.cs
- ConfigXmlWhitespace.cs
- MultiSelectRootGridEntry.cs
- SynchronizedInputAdaptor.cs
- XMLUtil.cs
- TableCellCollection.cs
- CodeTypeDeclaration.cs
- PassportPrincipal.cs
- StreamDocument.cs
- PEFileEvidenceFactory.cs
- CmsUtils.cs
- DbConnectionPoolIdentity.cs
- XamlPathDataSerializer.cs
- SurrogateSelector.cs
- ConnectionConsumerAttribute.cs
- SqlNotificationEventArgs.cs
- _FixedSizeReader.cs
- ValidationErrorInfo.cs
- EntityStoreSchemaFilterEntry.cs
- ExpandableObjectConverter.cs
- GeneratedCodeAttribute.cs
- TextCollapsingProperties.cs
- ToolStripDropDownMenu.cs
- ManagementObjectCollection.cs
- OdbcRowUpdatingEvent.cs
- System.Data_BID.cs
- basemetadatamappingvisitor.cs
- CompositeDispatchFormatter.cs
- SqlDataReaderSmi.cs
- CheckedListBox.cs
- XmlSchemaAppInfo.cs
- DataGridCell.cs
- EUCJPEncoding.cs
- MobileTextWriter.cs
- ToolCreatedEventArgs.cs
- XmlNamespaceMapping.cs
- Span.cs
- Lasso.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- Compiler.cs
- AlphabeticalEnumConverter.cs
- TemplateNameScope.cs
- ViewStateChangedEventArgs.cs
- CodeVariableDeclarationStatement.cs
- StorageComplexTypeMapping.cs
- StrokeNodeOperations.cs
- Size3D.cs
- TableCell.cs
- XmlSignificantWhitespace.cs
- TextEndOfParagraph.cs
- RequestQueryParser.cs