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
- DynamicActionMessageFilter.cs
- GenericUriParser.cs
- BrowserCapabilitiesCodeGenerator.cs
- LocalTransaction.cs
- IndexedString.cs
- HttpDictionary.cs
- WindowPattern.cs
- _AutoWebProxyScriptWrapper.cs
- AnnotationObservableCollection.cs
- Symbol.cs
- EventWaitHandle.cs
- DBConnectionString.cs
- DetailsViewRow.cs
- RadialGradientBrush.cs
- TextRunTypographyProperties.cs
- GcHandle.cs
- Panel.cs
- ContentElement.cs
- MatrixTransform3D.cs
- DecimalConverter.cs
- SettingsProperty.cs
- MasterPageBuildProvider.cs
- CultureInfo.cs
- _SSPIWrapper.cs
- PositiveTimeSpanValidatorAttribute.cs
- IBuiltInEvidence.cs
- PixelShader.cs
- ByteBufferPool.cs
- ApplicationDirectory.cs
- ByteStack.cs
- ToolStripMenuItem.cs
- UnmanagedMemoryAccessor.cs
- Application.cs
- HtmlTextBoxAdapter.cs
- mactripleDES.cs
- TempEnvironment.cs
- DigitShape.cs
- HtmlInputControl.cs
- BitmapSource.cs
- StrongNameIdentityPermission.cs
- DbConvert.cs
- BooleanConverter.cs
- CryptographicAttribute.cs
- FastEncoder.cs
- StickyNote.cs
- HMACSHA1.cs
- TimeSpanSecondsConverter.cs
- StyleCollectionEditor.cs
- SqlSelectClauseBuilder.cs
- Connector.cs
- EntityDesignerUtils.cs
- CriticalExceptions.cs
- DataKeyCollection.cs
- VirtualPathProvider.cs
- GPRECT.cs
- XmlDocument.cs
- TextParaLineResult.cs
- Registration.cs
- TreeNodeMouseHoverEvent.cs
- RtfToXamlLexer.cs
- StorageAssociationSetMapping.cs
- NamespaceQuery.cs
- HtmlForm.cs
- MethodBody.cs
- DataGridViewCellValidatingEventArgs.cs
- DataObjectSettingDataEventArgs.cs
- TraceListeners.cs
- Mapping.cs
- IdnMapping.cs
- ToggleProviderWrapper.cs
- WorkflowOwnershipException.cs
- ScalarOps.cs
- AuthenticationModuleElement.cs
- FormClosedEvent.cs
- KeyPressEvent.cs
- RepeatBehaviorConverter.cs
- SecurityKeyIdentifierClause.cs
- GetMemberBinder.cs
- WebPartZoneCollection.cs
- SystemParameters.cs
- SpotLight.cs
- IndexOutOfRangeException.cs
- AxHost.cs
- DataGridPagerStyle.cs
- ParserExtension.cs
- BatchWriter.cs
- DbException.cs
- KoreanLunisolarCalendar.cs
- SoapTypeAttribute.cs
- TogglePattern.cs
- FontDifferentiator.cs
- DynamicResourceExtensionConverter.cs
- BadImageFormatException.cs
- SecurityHelper.cs
- PropertyGrid.cs
- DataSourceConverter.cs
- SizeAnimationClockResource.cs
- InternalsVisibleToAttribute.cs
- DragDeltaEventArgs.cs
- SerTrace.cs