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
- EditorAttribute.cs
- XmlUtil.cs
- SymmetricKeyWrap.cs
- DatagridviewDisplayedBandsData.cs
- CompositeDataBoundControl.cs
- Int16AnimationUsingKeyFrames.cs
- ElementAction.cs
- InstanceLockTracking.cs
- UriParserTemplates.cs
- FormsAuthentication.cs
- DeviceSpecificDialogCachedState.cs
- OdbcDataAdapter.cs
- XsltArgumentList.cs
- GetCryptoTransformRequest.cs
- CodeArrayIndexerExpression.cs
- HtmlString.cs
- EntityObject.cs
- TypeDescriptionProvider.cs
- Parameter.cs
- IteratorFilter.cs
- ParsedAttributeCollection.cs
- SapiRecoInterop.cs
- PointConverter.cs
- MultiPageTextView.cs
- ColorAnimationUsingKeyFrames.cs
- DateRangeEvent.cs
- SetIterators.cs
- XsltContext.cs
- RuntimeCompatibilityAttribute.cs
- UInt64Converter.cs
- DoubleAverageAggregationOperator.cs
- TabItemWrapperAutomationPeer.cs
- RegexWorker.cs
- RequiredFieldValidator.cs
- DataProtection.cs
- ProxyGenerationError.cs
- BindingList.cs
- XmlUtil.cs
- UserControlBuildProvider.cs
- FormatterConverter.cs
- FontStyleConverter.cs
- PointLightBase.cs
- EventMappingSettings.cs
- EmbossBitmapEffect.cs
- SelectedDatesCollection.cs
- GraphicsContext.cs
- ChangePassword.cs
- Signature.cs
- PropertyPathWorker.cs
- KeyProperty.cs
- System.Data.OracleClient_BID.cs
- ResourceDictionaryCollection.cs
- WorkflowTraceTransfer.cs
- LabelEditEvent.cs
- EntityDataSourceColumn.cs
- OleDbTransaction.cs
- InternalsVisibleToAttribute.cs
- Atom10FormatterFactory.cs
- TypeLoadException.cs
- EventMappingSettingsCollection.cs
- PropertyOrder.cs
- ElementMarkupObject.cs
- StateBag.cs
- DataGridViewCellCollection.cs
- DesignerProperties.cs
- HtmlTitle.cs
- OrderedDictionary.cs
- SoapWriter.cs
- RichTextBoxConstants.cs
- RankException.cs
- Freezable.cs
- EventArgs.cs
- FlowLayout.cs
- MemoryStream.cs
- TextEffect.cs
- HeaderCollection.cs
- DataGridViewAccessibleObject.cs
- EventlogProvider.cs
- AuthorizationSection.cs
- SqlGenericUtil.cs
- WizardPanel.cs
- SchemaImporterExtension.cs
- ListViewUpdateEventArgs.cs
- ResourceDescriptionAttribute.cs
- EmptyControlCollection.cs
- ChildTable.cs
- SqlDataSourceCache.cs
- BoolLiteral.cs
- PrinterUnitConvert.cs
- Selector.cs
- HttpResponse.cs
- ProtocolsSection.cs
- TreeNodeMouseHoverEvent.cs
- BitmapEffectGeneralTransform.cs
- KoreanLunisolarCalendar.cs
- ToolStripComboBox.cs
- BamlTreeMap.cs
- ChtmlSelectionListAdapter.cs
- HttpDebugHandler.cs
- Grammar.cs