Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- InternalCache.cs
- PersonalizationStateInfoCollection.cs
- DataColumnSelectionConverter.cs
- WSSecurityJan2004.cs
- AutomationTextAttribute.cs
- milexports.cs
- AggregatePushdown.cs
- SchemaElementDecl.cs
- UpWmlPageAdapter.cs
- SettingsProviderCollection.cs
- DateTimeHelper.cs
- MetadataArtifactLoaderCompositeFile.cs
- SeverityFilter.cs
- DefaultProxySection.cs
- TableLayout.cs
- FixedFlowMap.cs
- EdmValidator.cs
- TextComposition.cs
- XmlNode.cs
- DataGridLinkButton.cs
- DesignerHierarchicalDataSourceView.cs
- FormViewUpdatedEventArgs.cs
- AdapterUtil.cs
- FontUnit.cs
- PointAnimationClockResource.cs
- PolicyConversionContext.cs
- RegexCapture.cs
- GenericsInstances.cs
- ValidationSummary.cs
- TableLayoutPanel.cs
- StorageScalarPropertyMapping.cs
- CopyOnWriteList.cs
- ResourcePermissionBaseEntry.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- DelimitedListTraceListener.cs
- HandleRef.cs
- GenericRootAutomationPeer.cs
- ListItemViewControl.cs
- XmlAtomicValue.cs
- ButtonPopupAdapter.cs
- HtmlString.cs
- PeekCompletedEventArgs.cs
- EntityKey.cs
- SafeSecurityHandles.cs
- XPathExpr.cs
- Interlocked.cs
- WindowsFormsHostAutomationPeer.cs
- XmlSchemaAnnotated.cs
- HtmlForm.cs
- _CookieModule.cs
- DataFieldEditor.cs
- PropertyToken.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- ServiceRouteHandler.cs
- WorkflowTransactionOptions.cs
- HostProtectionPermission.cs
- WhiteSpaceTrimStringConverter.cs
- Pens.cs
- XpsDocumentEvent.cs
- PathSegment.cs
- ObservableDictionary.cs
- EqualityComparer.cs
- WindowsListView.cs
- CodePageUtils.cs
- WebPartDisplayMode.cs
- BehaviorEditorPart.cs
- ClientSettings.cs
- safemediahandle.cs
- XmlAttribute.cs
- WindowsEditBox.cs
- PerformanceCountersBase.cs
- DataGridAddNewRow.cs
- FontDialog.cs
- MetabaseServerConfig.cs
- RotateTransform3D.cs
- MimeParameters.cs
- CompositionAdorner.cs
- FontInfo.cs
- CodeTypeReference.cs
- StyleBamlRecordReader.cs
- Renderer.cs
- SpellCheck.cs
- CookieHandler.cs
- TableRow.cs
- PackageRelationshipSelector.cs
- XmlDownloadManager.cs
- SecureStringHasher.cs
- NotifyIcon.cs
- MasterPageCodeDomTreeGenerator.cs
- TableRowGroup.cs
- EndPoint.cs
- DBConnection.cs
- ValidatorUtils.cs
- RubberbandSelector.cs
- TopClause.cs
- CodeEntryPointMethod.cs
- IndexedEnumerable.cs
- Matrix.cs
- SystemDiagnosticsSection.cs
- AuthenticodeSignatureInformation.cs