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
- TextSelection.cs
- WorkflowServiceAttributes.cs
- SqlProcedureAttribute.cs
- CryptoConfig.cs
- MetadataStore.cs
- XPathNodeHelper.cs
- Header.cs
- DataExpression.cs
- AppDomainProtocolHandler.cs
- ReaderOutput.cs
- DrawingBrush.cs
- RequestCache.cs
- UnsafeNetInfoNativeMethods.cs
- TypedElement.cs
- _NestedMultipleAsyncResult.cs
- Error.cs
- WebPartCloseVerb.cs
- BaseCollection.cs
- Command.cs
- CommandBindingCollection.cs
- CatalogPart.cs
- UnsafeNativeMethodsPenimc.cs
- XPathItem.cs
- PlacementWorkspace.cs
- DataGridCellInfo.cs
- MeshGeometry3D.cs
- NullableDecimalMinMaxAggregationOperator.cs
- ToolBarPanel.cs
- Enlistment.cs
- TypedDatasetGenerator.cs
- SharedTcpTransportManager.cs
- ADMembershipUser.cs
- EnumMemberAttribute.cs
- COMException.cs
- PropertyPathConverter.cs
- DirectoryLocalQuery.cs
- TextDocumentView.cs
- XPathDocument.cs
- DodSequenceMerge.cs
- ActivitiesCollection.cs
- _CookieModule.cs
- DataGridHeaderBorder.cs
- TrayIconDesigner.cs
- DataServiceRequestOfT.cs
- WebPart.cs
- EdgeModeValidation.cs
- WindowsComboBox.cs
- SelectionService.cs
- IDataContractSurrogate.cs
- Root.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- Parallel.cs
- BitmapEffect.cs
- DataGridViewImageColumn.cs
- IssuanceLicense.cs
- HttpResponseBase.cs
- SqlNamer.cs
- Visitors.cs
- Point3DCollection.cs
- CursorConverter.cs
- _ListenerRequestStream.cs
- EntityKey.cs
- CollectionChangedEventManager.cs
- Slider.cs
- control.ime.cs
- ExpressionBuilderCollection.cs
- CollectionViewGroupInternal.cs
- XmlValidatingReaderImpl.cs
- OverloadGroupAttribute.cs
- LocatorPart.cs
- GrammarBuilderPhrase.cs
- TextDecorationLocationValidation.cs
- UpdateException.cs
- LicenseProviderAttribute.cs
- TextEditorTyping.cs
- DynamicFilter.cs
- SetterBase.cs
- ErrorItem.cs
- WindowsRichEditRange.cs
- SubMenuStyleCollection.cs
- DayRenderEvent.cs
- SHA512.cs
- SmiEventSink_Default.cs
- ToolStripPanelRow.cs
- _BaseOverlappedAsyncResult.cs
- NoResizeHandleGlyph.cs
- WebReference.cs
- WebRequest.cs
- JsonSerializer.cs
- AttributeUsageAttribute.cs
- WebPartMenu.cs
- ArgumentsParser.cs
- HiddenField.cs
- OneWayBindingElementImporter.cs
- Debug.cs
- ZipIORawDataFileBlock.cs
- TemplateControlBuildProvider.cs
- CodePageUtils.cs
- XmlNotation.cs
- SchemaTypeEmitter.cs