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
- ListControlBoundActionList.cs
- HelpProvider.cs
- Figure.cs
- NamedPipeChannelFactory.cs
- _SafeNetHandles.cs
- OpenTypeLayout.cs
- TypeElementCollection.cs
- ConfigDefinitionUpdates.cs
- ConsoleTraceListener.cs
- HtmlDocument.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- SerializationEventsCache.cs
- AsyncCodeActivityContext.cs
- TemplateBindingExpressionConverter.cs
- StrongNameIdentityPermission.cs
- _TLSstream.cs
- PropertyMapper.cs
- Profiler.cs
- MachineKeyConverter.cs
- CounterSample.cs
- ICspAsymmetricAlgorithm.cs
- SRDisplayNameAttribute.cs
- ImpersonationContext.cs
- CodeMemberField.cs
- HtmlTableCell.cs
- ClientCultureInfo.cs
- AnimationClockResource.cs
- RowParagraph.cs
- StickyNoteContentControl.cs
- Tablet.cs
- XmlTextEncoder.cs
- UriSection.cs
- TimeoutValidationAttribute.cs
- ConnectionProviderAttribute.cs
- XmlSchemaObjectCollection.cs
- FullTextBreakpoint.cs
- ProxyElement.cs
- OracleInfoMessageEventArgs.cs
- TextSimpleMarkerProperties.cs
- ExpressionHelper.cs
- Package.cs
- TransactionManager.cs
- DataGridViewRowEventArgs.cs
- ScriptHandlerFactory.cs
- XsdBuilder.cs
- FileDialogCustomPlace.cs
- Events.cs
- Utils.cs
- SystemPens.cs
- SamlDoNotCacheCondition.cs
- Array.cs
- UiaCoreProviderApi.cs
- OracleColumn.cs
- AnnotationComponentChooser.cs
- ToolboxDataAttribute.cs
- Misc.cs
- SourceFileBuildProvider.cs
- HtmlTableRowCollection.cs
- ResourceWriter.cs
- SortedDictionary.cs
- ImagingCache.cs
- NoClickablePointException.cs
- SmtpSection.cs
- ToolStripButton.cs
- PtsHost.cs
- NamespaceImport.cs
- ConsumerConnectionPoint.cs
- RangeValuePattern.cs
- WebPartEditVerb.cs
- ObjectStorage.cs
- XmlSchemaExporter.cs
- StoryFragments.cs
- RegionIterator.cs
- FontNameConverter.cs
- ManagementEventArgs.cs
- uribuilder.cs
- SqlDataSourceCache.cs
- securitymgrsite.cs
- ConstantCheck.cs
- ScrollBar.cs
- ChtmlTextWriter.cs
- Configuration.cs
- TableRowsCollectionEditor.cs
- BinaryFormatter.cs
- SRDisplayNameAttribute.cs
- WinEventWrap.cs
- XmlSyndicationContent.cs
- RewritingPass.cs
- ChangeBlockUndoRecord.cs
- Mappings.cs
- BlurEffect.cs
- EventSetter.cs
- IdentityNotMappedException.cs
- IPHostEntry.cs
- ProcessHostServerConfig.cs
- WeakRefEnumerator.cs
- FileDialog.cs
- DataGridSortingEventArgs.cs
- DataFormats.cs
- SerializationTrace.cs