Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- FontStretchConverter.cs
- WebPartPersonalization.cs
- BitmapEffectrendercontext.cs
- InitializationEventAttribute.cs
- SingleConverter.cs
- CodeEntryPointMethod.cs
- Parallel.cs
- VariableAction.cs
- PermissionSetEnumerator.cs
- DiscoveryServerProtocol.cs
- XamlSerializerUtil.cs
- CreatingCookieEventArgs.cs
- ComplexBindingPropertiesAttribute.cs
- FlowDocument.cs
- AbstractDataSvcMapFileLoader.cs
- OutputScope.cs
- TextHidden.cs
- RSAPKCS1SignatureFormatter.cs
- WindowsTokenRoleProvider.cs
- RegexGroup.cs
- FontSource.cs
- ListControl.cs
- BitmapEffectDrawingContent.cs
- CodeDOMProvider.cs
- VisualTreeUtils.cs
- AutoSizeComboBox.cs
- XmlHierarchicalDataSourceView.cs
- TimeoutHelper.cs
- LambdaCompiler.Expressions.cs
- EncodingDataItem.cs
- TableLayoutColumnStyleCollection.cs
- ShutDownListener.cs
- WebPartActionVerb.cs
- TextTreeTextBlock.cs
- FormsAuthenticationCredentials.cs
- XmlnsCache.cs
- DrawingGroup.cs
- TransactionInformation.cs
- IfJoinedCondition.cs
- ListBox.cs
- WindowsTooltip.cs
- ValuePattern.cs
- UserControlFileEditor.cs
- XmlDocumentSchema.cs
- BaseAddressPrefixFilterElement.cs
- XPathDescendantIterator.cs
- ResourceProviderFactory.cs
- SafeCertificateContext.cs
- TransformGroup.cs
- FileDialogPermission.cs
- RenderContext.cs
- SymmetricCryptoHandle.cs
- SliderAutomationPeer.cs
- Msec.cs
- ServiceOperationUIEditor.cs
- LinearGradientBrush.cs
- AudioFormatConverter.cs
- SettingsSavedEventArgs.cs
- QueueSurrogate.cs
- regiisutil.cs
- DialogDivider.cs
- LogExtentCollection.cs
- OneOfTypeConst.cs
- CodeCastExpression.cs
- Region.cs
- ArcSegment.cs
- ObjectManager.cs
- ThreadInterruptedException.cs
- EdmConstants.cs
- MetaForeignKeyColumn.cs
- SystemNetworkInterface.cs
- ListItemsCollectionEditor.cs
- RepeatButtonAutomationPeer.cs
- HitTestFilterBehavior.cs
- Pen.cs
- StickyNoteHelper.cs
- ToolStripDropTargetManager.cs
- TransformerConfigurationWizardBase.cs
- WebSysDisplayNameAttribute.cs
- SystemIcmpV6Statistics.cs
- WebPartConnectionsConfigureVerb.cs
- PointConverter.cs
- XmlEntity.cs
- SqlEnums.cs
- TextParaClient.cs
- DataGridTablesFactory.cs
- DependencyObjectPropertyDescriptor.cs
- Oid.cs
- MatchingStyle.cs
- GenericRootAutomationPeer.cs
- TypeUsageBuilder.cs
- SqlBooleanizer.cs
- SafeLibraryHandle.cs
- ScriptingSectionGroup.cs
- MouseWheelEventArgs.cs
- TextEditorSpelling.cs
- WebBrowserContainer.cs
- ReliableOutputConnection.cs
- SqlMethodAttribute.cs
- HttpListenerResponse.cs