Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- DataObjectAttribute.cs
- EntityWithKeyStrategy.cs
- CryptoConfig.cs
- GcHandle.cs
- WindowsListViewGroupHelper.cs
- Propagator.Evaluator.cs
- GridSplitterAutomationPeer.cs
- CodeDOMUtility.cs
- GlyphRunDrawing.cs
- SHA1.cs
- XmlSchemaCompilationSettings.cs
- HostingEnvironment.cs
- SymbolPair.cs
- InputScopeConverter.cs
- StringValueSerializer.cs
- XmlSchemaAttribute.cs
- RequestBringIntoViewEventArgs.cs
- EventLogEntry.cs
- SerializationInfo.cs
- XmlDataDocument.cs
- ByteRangeDownloader.cs
- ToolStripStatusLabel.cs
- SslStream.cs
- FormViewDeletedEventArgs.cs
- ToolStripItemCollection.cs
- KeyValuePairs.cs
- JournalEntryListConverter.cs
- CngProvider.cs
- embossbitmapeffect.cs
- XPathDescendantIterator.cs
- OperationInfoBase.cs
- TransformPatternIdentifiers.cs
- CellConstantDomain.cs
- processwaithandle.cs
- CodeNamespaceImport.cs
- Win32Native.cs
- DataGridItemCollection.cs
- DocumentGridContextMenu.cs
- WebPartConnectionCollection.cs
- ListItemConverter.cs
- InheritanceContextHelper.cs
- LoginDesigner.cs
- ScalarConstant.cs
- RedistVersionInfo.cs
- Interlocked.cs
- State.cs
- InputProcessorProfiles.cs
- TableProviderWrapper.cs
- SystemIPInterfaceStatistics.cs
- DataBindingValueUIHandler.cs
- metadatamappinghashervisitor.cs
- DoubleCollectionConverter.cs
- TimeEnumHelper.cs
- NativeRightsManagementAPIsStructures.cs
- brushes.cs
- SqlOuterApplyReducer.cs
- GridSplitter.cs
- SchemaNames.cs
- PersonalizationStateQuery.cs
- Line.cs
- SharedMemory.cs
- DataView.cs
- LinkButton.cs
- TypePresenter.xaml.cs
- CopyAttributesAction.cs
- Set.cs
- DoubleCollection.cs
- List.cs
- ReadOnlyState.cs
- LambdaCompiler.Lambda.cs
- SmiContextFactory.cs
- CodeValidator.cs
- COM2FontConverter.cs
- DataSetMappper.cs
- SHA512.cs
- Object.cs
- ModelItemCollectionImpl.cs
- AsymmetricKeyExchangeFormatter.cs
- __Filters.cs
- BinaryWriter.cs
- ViewStateAttachedPropertyFeature.cs
- LabelEditEvent.cs
- DataGridViewLayoutData.cs
- SynchronizedDispatch.cs
- XmlChildNodes.cs
- SchemaInfo.cs
- BinaryNegotiation.cs
- PointValueSerializer.cs
- HostingEnvironment.cs
- CodeDOMUtility.cs
- SmtpNetworkElement.cs
- ByteStorage.cs
- AssemblyBuilder.cs
- IQueryable.cs
- ConnectionManagementElementCollection.cs
- AssemblyBuilder.cs
- FileAuthorizationModule.cs
- Expr.cs
- ConnectionPoint.cs
- ClientFormsAuthenticationCredentials.cs