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
- NegationPusher.cs
- SqlProcedureAttribute.cs
- SqlNotificationRequest.cs
- DataTableCollection.cs
- AdapterUtil.cs
- UniqueConstraint.cs
- BasicExpressionVisitor.cs
- TextProperties.cs
- WsatExtendedInformation.cs
- Transactions.cs
- OdbcConnectionHandle.cs
- UnmanagedMemoryStreamWrapper.cs
- ColorConvertedBitmap.cs
- DocComment.cs
- EntityRecordInfo.cs
- TripleDESCryptoServiceProvider.cs
- StrongNamePublicKeyBlob.cs
- BitStream.cs
- AssemblyBuilderData.cs
- CLRBindingWorker.cs
- SubpageParagraph.cs
- SafeTimerHandle.cs
- AddIn.cs
- NullableDoubleAverageAggregationOperator.cs
- XmlBinaryReader.cs
- InstanceDataCollectionCollection.cs
- xmlglyphRunInfo.cs
- HtmlControl.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- DataGridTextBox.cs
- XmlDocumentFragment.cs
- AnnotationResource.cs
- Descriptor.cs
- ReadOnlyDictionary.cs
- Array.cs
- UInt16.cs
- DataGridViewComboBoxColumn.cs
- ConnectionPoint.cs
- ConfigurationLoaderException.cs
- ServiceOperationInfoTypeConverter.cs
- HotCommands.cs
- FixedSOMTableRow.cs
- SafeNativeMemoryHandle.cs
- ValidationHelper.cs
- SimpleFieldTemplateFactory.cs
- JsonSerializer.cs
- DataRow.cs
- AssemblyNameProxy.cs
- SymbolTable.cs
- FileDialog_Vista_Interop.cs
- CornerRadius.cs
- addressfiltermode.cs
- TextRange.cs
- NameObjectCollectionBase.cs
- DataGridState.cs
- TablePattern.cs
- WebPageTraceListener.cs
- MLangCodePageEncoding.cs
- ListCommandEventArgs.cs
- MimeReflector.cs
- ServiceHttpModule.cs
- Boolean.cs
- ServiceProviders.cs
- ProgressBarRenderer.cs
- FileDetails.cs
- ClockController.cs
- WebPartVerb.cs
- SecurityPolicySection.cs
- IdentityModelStringsVersion1.cs
- ProfileBuildProvider.cs
- CqlIdentifiers.cs
- AttachInfo.cs
- MatrixConverter.cs
- AbandonedMutexException.cs
- CultureNotFoundException.cs
- InvalidCastException.cs
- DiagnosticTrace.cs
- ForwardPositionQuery.cs
- ConvertEvent.cs
- WebPartMenuStyle.cs
- AuthenticationManager.cs
- PrintPreviewControl.cs
- MouseWheelEventArgs.cs
- RuntimeCompatibilityAttribute.cs
- Int64KeyFrameCollection.cs
- RegexCode.cs
- XmlArrayItemAttribute.cs
- AssemblyName.cs
- UInt16Storage.cs
- CompiledQueryCacheEntry.cs
- SystemMulticastIPAddressInformation.cs
- XmlQueryRuntime.cs
- InheritanceRules.cs
- LocalizationComments.cs
- ReadWriteSpinLock.cs
- EventDescriptorCollection.cs
- ServiceContractDetailViewControl.cs
- DbQueryCommandTree.cs
- BooleanAnimationBase.cs
- CorePropertiesFilter.cs