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
- ScrollableControlDesigner.cs
- NavigatorOutput.cs
- ListBindingHelper.cs
- BatchWriter.cs
- DropDownButton.cs
- DataObjectEventArgs.cs
- Menu.cs
- HTTPNotFoundHandler.cs
- GuidelineCollection.cs
- Grant.cs
- TeredoHelper.cs
- activationcontext.cs
- AvTraceDetails.cs
- ThaiBuddhistCalendar.cs
- DbConvert.cs
- MemberAccessException.cs
- SamlEvidence.cs
- FramingFormat.cs
- DataGridViewColumn.cs
- Publisher.cs
- AnonymousIdentificationModule.cs
- X509PeerCertificateAuthentication.cs
- _DomainName.cs
- DesignerSerializerAttribute.cs
- HttpHandlerAction.cs
- BitFlagsGenerator.cs
- ShutDownListener.cs
- Compiler.cs
- PasswordTextNavigator.cs
- StylusPointPropertyUnit.cs
- MimeWriter.cs
- Pen.cs
- FloaterBaseParagraph.cs
- UpdateExpressionVisitor.cs
- TreeNodeStyle.cs
- TreeIterators.cs
- WinFormsSpinner.cs
- RawStylusInputCustomData.cs
- WebHttpSecurityModeHelper.cs
- Base64Encoder.cs
- XPathChildIterator.cs
- ScrollEventArgs.cs
- StreamingContext.cs
- TreeNodeConverter.cs
- MethodExpression.cs
- MachineKeyConverter.cs
- TextComposition.cs
- BackgroundFormatInfo.cs
- UriTemplateVariableQueryValue.cs
- SqlDataSourceConfigureSelectPanel.cs
- TextEndOfLine.cs
- Icon.cs
- PtsHost.cs
- IDQuery.cs
- Wildcard.cs
- ParameterModifier.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- TreeWalker.cs
- Part.cs
- FileDocument.cs
- ImportRequest.cs
- PrintController.cs
- figurelengthconverter.cs
- TraceProvider.cs
- StylusCollection.cs
- PropertyMapper.cs
- SvcMapFile.cs
- QueryableFilterRepeater.cs
- Ray3DHitTestResult.cs
- DataGridCellClipboardEventArgs.cs
- ScrollViewer.cs
- PrivilegeNotHeldException.cs
- XmlException.cs
- CreateUserWizardStep.cs
- SqlProviderManifest.cs
- DesignerActionService.cs
- COM2PropertyBuilderUITypeEditor.cs
- listitem.cs
- ExpressionList.cs
- VirtualPathUtility.cs
- ImportCatalogPart.cs
- SqlInfoMessageEvent.cs
- Root.cs
- Win32Exception.cs
- AssemblyResourceLoader.cs
- SerializationHelper.cs
- PathSegment.cs
- MarshalByRefObject.cs
- WaveHeader.cs
- SecurityState.cs
- NegotiateStream.cs
- webbrowsersite.cs
- handlecollector.cs
- basenumberconverter.cs
- GCHandleCookieTable.cs
- mansign.cs
- SelectorItemAutomationPeer.cs
- EntityConnection.cs
- DataRowView.cs
- ObjectCloneHelper.cs