Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / textformatting / TextEmbeddedObject.cs / 1305600 / 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
- baseaxisquery.cs
- ToolStripSplitStackLayout.cs
- latinshape.cs
- GridViewHeaderRowPresenter.cs
- FakeModelItemImpl.cs
- ContextProperty.cs
- AnnotationComponentChooser.cs
- InitializingNewItemEventArgs.cs
- TypeGeneratedEventArgs.cs
- Panel.cs
- UshortList2.cs
- FormViewRow.cs
- GetImportedCardRequest.cs
- SettingsProviderCollection.cs
- AuthenticatedStream.cs
- PerfCounterSection.cs
- DBNull.cs
- DrawingImage.cs
- TreeViewImageIndexConverter.cs
- GZipDecoder.cs
- QueuePropertyVariants.cs
- ContentOperations.cs
- _NestedSingleAsyncResult.cs
- AsymmetricKeyExchangeDeformatter.cs
- assertwrapper.cs
- QueryAccessibilityHelpEvent.cs
- FlatButtonAppearance.cs
- AggregateNode.cs
- Helpers.cs
- TabPanel.cs
- MbpInfo.cs
- SecurityDocument.cs
- IndicShape.cs
- DecimalConstantAttribute.cs
- PageEventArgs.cs
- basecomparevalidator.cs
- DbResourceAllocator.cs
- EntryIndex.cs
- DetailsViewDeletedEventArgs.cs
- EntityClassGenerator.cs
- PackWebRequestFactory.cs
- FormViewUpdatedEventArgs.cs
- SoapFault.cs
- ToolStripPanel.cs
- ElementsClipboardData.cs
- WebPartHeaderCloseVerb.cs
- backend.cs
- CodeTryCatchFinallyStatement.cs
- SplitterPanel.cs
- MediaScriptCommandRoutedEventArgs.cs
- RTLAwareMessageBox.cs
- StringAnimationUsingKeyFrames.cs
- ChtmlTextWriter.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- TextParaLineResult.cs
- DoubleAverageAggregationOperator.cs
- MergeLocalizationDirectives.cs
- CookieHandler.cs
- DataReceivedEventArgs.cs
- HtmlInputText.cs
- BasicExpressionVisitor.cs
- ObjectQueryExecutionPlan.cs
- RecordBuilder.cs
- RenderData.cs
- SelectionWordBreaker.cs
- DataSetMappper.cs
- ControlPaint.cs
- ChildrenQuery.cs
- XmlEncodedRawTextWriter.cs
- DesignerVerbCollection.cs
- WpfWebRequestHelper.cs
- MimePart.cs
- Help.cs
- SignatureConfirmationElement.cs
- Script.cs
- TabControlAutomationPeer.cs
- OracleParameter.cs
- ValidationErrorCollection.cs
- TimeZone.cs
- FactoryId.cs
- EnumerableRowCollectionExtensions.cs
- ErrorEventArgs.cs
- OLEDB_Util.cs
- LinearKeyFrames.cs
- ListViewTableCell.cs
- WebServiceParameterData.cs
- ComponentGlyph.cs
- _LazyAsyncResult.cs
- X509InitiatorCertificateClientElement.cs
- x509utils.cs
- DrawingCollection.cs
- OracleInfoMessageEventArgs.cs
- HwndSubclass.cs
- SystemPens.cs
- WebEvents.cs
- TableCellCollection.cs
- SharedPerformanceCounter.cs
- TcpClientCredentialType.cs
- OdbcRowUpdatingEvent.cs
- SqlFileStream.cs