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
- CompModSwitches.cs
- ForEachAction.cs
- SqlLiftIndependentRowExpressions.cs
- CapabilitiesUse.cs
- ExtendedProperty.cs
- StringCollection.cs
- smtppermission.cs
- HuffCodec.cs
- SqlTopReducer.cs
- Matrix.cs
- IFlowDocumentViewer.cs
- SafePointer.cs
- KoreanLunisolarCalendar.cs
- RC2CryptoServiceProvider.cs
- TextStore.cs
- AsymmetricSecurityBindingElement.cs
- StoreItemCollection.Loader.cs
- CompareInfo.cs
- InkSerializer.cs
- SqlDesignerDataSourceView.cs
- UnsafeNativeMethodsPenimc.cs
- ToolStripSplitStackLayout.cs
- FixUp.cs
- FrameworkContentElement.cs
- Rotation3DAnimationUsingKeyFrames.cs
- AuthStoreRoleProvider.cs
- _AutoWebProxyScriptWrapper.cs
- DataGridCaption.cs
- ObjectDisposedException.cs
- MembershipPasswordException.cs
- ChangeToolStripParentVerb.cs
- ValidationSummary.cs
- NumberFormatInfo.cs
- XmlILIndex.cs
- TransferRequestHandler.cs
- WorkflowViewElement.cs
- ADMembershipProvider.cs
- InlineObject.cs
- BooleanFunctions.cs
- Privilege.cs
- IsolationInterop.cs
- SecurityDescriptor.cs
- TemplateParser.cs
- DataGridItemAutomationPeer.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- NameNode.cs
- Merger.cs
- AsyncDataRequest.cs
- KeyNotFoundException.cs
- BroadcastEventHelper.cs
- StronglyTypedResourceBuilder.cs
- ellipse.cs
- EventLogPermission.cs
- ComUdtElementCollection.cs
- DataBinder.cs
- FastEncoderWindow.cs
- TableProviderWrapper.cs
- SByteStorage.cs
- MimeWriter.cs
- BasicAsyncResult.cs
- BitmapFrame.cs
- SqlVisitor.cs
- DesignerActionUIService.cs
- AnnotationStore.cs
- Main.cs
- CrossSiteScriptingValidation.cs
- Queue.cs
- KeyValueConfigurationElement.cs
- Axis.cs
- GridEntry.cs
- SystemWebCachingSectionGroup.cs
- XPathItem.cs
- XmlTypeMapping.cs
- SqlClientWrapperSmiStream.cs
- ConfigurationElement.cs
- MatrixAnimationUsingKeyFrames.cs
- StrokeNodeEnumerator.cs
- XmlDataLoader.cs
- CodeGotoStatement.cs
- SqlProcedureAttribute.cs
- SystemIPv4InterfaceProperties.cs
- CodeMemberMethod.cs
- CalendarItem.cs
- MD5CryptoServiceProvider.cs
- PageAsyncTask.cs
- XhtmlBasicPageAdapter.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- ValidatingCollection.cs
- SqlGatherProducedAliases.cs
- DerivedKeySecurityTokenStub.cs
- PersonalizationProvider.cs
- MessageBox.cs
- RewritingValidator.cs
- StringFormat.cs
- XmlWriter.cs
- BinaryReader.cs
- HttpProfileGroupBase.cs
- DataStreams.cs
- XmlSecureResolver.cs
- FileSystemWatcher.cs