Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- WeakReference.cs
- ThreadPool.cs
- BrowserCapabilitiesCompiler.cs
- DataGridViewDataConnection.cs
- ObjectDataSourceEventArgs.cs
- Pipe.cs
- BadImageFormatException.cs
- SqlIdentifier.cs
- ScrollEvent.cs
- recordstate.cs
- DisplayNameAttribute.cs
- StreamGeometry.cs
- HtmlTableCell.cs
- AccessedThroughPropertyAttribute.cs
- TimeStampChecker.cs
- CLRBindingWorker.cs
- RedirectionProxy.cs
- RestHandlerFactory.cs
- Privilege.cs
- KeyboardNavigation.cs
- PrivilegeNotHeldException.cs
- EntityDesignerDataSourceView.cs
- LifetimeServices.cs
- ellipse.cs
- Lookup.cs
- CodeLinePragma.cs
- GradientBrush.cs
- ApplicationSettingsBase.cs
- InkCanvasSelection.cs
- ISessionStateStore.cs
- CharConverter.cs
- TextBoxDesigner.cs
- _AutoWebProxyScriptEngine.cs
- AnnotationHelper.cs
- DataObjectCopyingEventArgs.cs
- ErrorReporting.cs
- BamlTreeNode.cs
- CodeEntryPointMethod.cs
- DashStyles.cs
- DownloadProgressEventArgs.cs
- SecurityTraceRecordHelper.cs
- PreDigestedSignedInfo.cs
- UrlMappingsSection.cs
- BitmapEffect.cs
- RefType.cs
- PEFileEvidenceFactory.cs
- RelatedEnd.cs
- ResolveNextArgumentWorkItem.cs
- ImmutableCollection.cs
- CodeDomConfigurationHandler.cs
- StrokeSerializer.cs
- BookmarkOptionsHelper.cs
- MulticastNotSupportedException.cs
- securitycriticaldata.cs
- WorkflowDispatchContext.cs
- _NetworkingPerfCounters.cs
- XPathNodeHelper.cs
- StandardOleMarshalObject.cs
- HtmlInputButton.cs
- RuleSetCollection.cs
- ConstNode.cs
- TimersDescriptionAttribute.cs
- ToolStripContainer.cs
- PrivilegeNotHeldException.cs
- Directory.cs
- HttpConfigurationSystem.cs
- ExecutionContext.cs
- PerformanceCounterManager.cs
- TypeElementCollection.cs
- RefreshPropertiesAttribute.cs
- DiagnosticTrace.cs
- SqlBulkCopyColumnMapping.cs
- SelectedGridItemChangedEvent.cs
- ModelPropertyCollectionImpl.cs
- TextServicesCompartment.cs
- TargetException.cs
- FrameworkContentElement.cs
- ReferenceSchema.cs
- TransformPatternIdentifiers.cs
- Accessible.cs
- TPLETWProvider.cs
- ButtonRenderer.cs
- WebException.cs
- SerialPort.cs
- SqlDependencyListener.cs
- XamlPointCollectionSerializer.cs
- InputLanguageSource.cs
- ProcessHostMapPath.cs
- QilIterator.cs
- SpellerInterop.cs
- WeakRefEnumerator.cs
- DefaultDialogButtons.cs
- TemplateControlBuildProvider.cs
- BaseResourcesBuildProvider.cs
- ReferenceTypeElement.cs
- TextElementEnumerator.cs
- Component.cs
- WebControl.cs
- ToolZoneDesigner.cs
- CollectionConverter.cs