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
- PropertyValueChangedEvent.cs
- CodeChecksumPragma.cs
- StyleCollectionEditor.cs
- nulltextnavigator.cs
- ScrollableControl.cs
- IxmlLineInfo.cs
- ConfigXmlText.cs
- OutputCacheSettings.cs
- NameValueSectionHandler.cs
- FixedBufferAttribute.cs
- WebHeaderCollection.cs
- ReferenceEqualityComparer.cs
- SqlReorderer.cs
- UInt32Converter.cs
- assertwrapper.cs
- Pair.cs
- OdbcErrorCollection.cs
- StylusPlugin.cs
- MimeObjectFactory.cs
- DummyDataSource.cs
- AdornerDecorator.cs
- UnsafeNativeMethods.cs
- ValidatorCollection.cs
- DeclarativeCatalogPart.cs
- TargetControlTypeAttribute.cs
- WebPartConnectVerb.cs
- HtmlCalendarAdapter.cs
- JpegBitmapEncoder.cs
- MetabaseSettings.cs
- HwndAppCommandInputProvider.cs
- ReplacementText.cs
- ApplyTemplatesAction.cs
- XmlSchemaSequence.cs
- PointAnimationClockResource.cs
- TextReader.cs
- DataServiceProcessingPipelineEventArgs.cs
- MethodExpr.cs
- Model3DGroup.cs
- WebPartActionVerb.cs
- XslAstAnalyzer.cs
- SchemaImporterExtensionsSection.cs
- GetKeyedHashRequest.cs
- TransactionFlowAttribute.cs
- WindowsBrush.cs
- TranslateTransform.cs
- GlobalEventManager.cs
- BamlRecords.cs
- ExceptionNotification.cs
- XmlBindingWorker.cs
- IntegerCollectionEditor.cs
- altserialization.cs
- WSFederationHttpBinding.cs
- ConversionHelper.cs
- ObjectToIdCache.cs
- MemberDescriptor.cs
- AppDomainManager.cs
- ValueType.cs
- Expression.DebuggerProxy.cs
- ParameterCollectionEditorForm.cs
- RepeatButtonAutomationPeer.cs
- RC2CryptoServiceProvider.cs
- SingleObjectCollection.cs
- XmlSchemaObjectTable.cs
- Attributes.cs
- ZoneIdentityPermission.cs
- XmlILTrace.cs
- CombinedGeometry.cs
- Misc.cs
- OracleConnectionString.cs
- AutoCompleteStringCollection.cs
- FieldMetadata.cs
- Window.cs
- DynamicMetaObject.cs
- RotationValidation.cs
- ScaleTransform.cs
- Application.cs
- x509utils.cs
- Rule.cs
- IpcServerChannel.cs
- DocumentApplicationJournalEntry.cs
- EventLogConfiguration.cs
- InvokeWebService.cs
- GeneralTransform2DTo3D.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- ServiceModelConfigurationSectionCollection.cs
- HtmlElementCollection.cs
- WebHttpBindingElement.cs
- BitmapScalingModeValidation.cs
- WindowShowOrOpenTracker.cs
- DataGridViewRowCollection.cs
- ModelChangedEventArgsImpl.cs
- RoleManagerModule.cs
- ProgressBarRenderer.cs
- ValidationPropertyAttribute.cs
- DataListDesigner.cs
- ShutDownListener.cs
- RouteValueDictionary.cs
- DynamicUpdateCommand.cs
- NameScopePropertyAttribute.cs
- BindingCompleteEventArgs.cs