Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Drawing.cs / 1305600 / Drawing.cs
//---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Description: Drawing is the base Drawing class that defines the standard // interface which Drawing's must implement. // // History: // 2003/07/16 : [....] - Created it. // 2003/07/28 : [....] - Renamed it and hooked it up to the unmanaged code. // 2004/11/17 : timothyc - Repurposed Drawing from being a Changeable // implementation that contains render data into the base // class for the enumerable & modifiable Drawing subclasses. // 2005/01/26 : timothyc - Made Drawing abstract & removed legacy Drawing // support, including .Open() & IAddChild. // //--------------------------------------------------------------------------- using MS.Internal; using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Resources; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using System.Windows.Markup; using System.Windows.Threading; namespace System.Windows.Media { ////// Base class for the enumerable and modifiable Drawing subclasses. /// [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] public abstract partial class Drawing : Animatable, IDrawingContent, DUCE.IResource { #region Constructors ////// Constructor for Drawing /// ////// This constructor is internal to prevent external subclassing. /// internal Drawing() { } #endregion Constructors #region Public Properties ////// Bounds - the axis-aligned bounds of this Drawing. /// ////// Rect - the axis-aligned bounds of this Drawing. /// public Rect Bounds { get { ReadPreamble(); return GetBounds(); } } #endregion Public Properties #region Internal Methods ////// Calls methods on the DrawingContext that are equivalent to the /// Drawing with the Drawing's current value. /// internal abstract void WalkCurrentValue(DrawingContextWalker ctx); #endregion Internal Methods ////// Returns the bounding box occupied by the content /// ////// Bounding box occupied by the content /// Rect IDrawingContent.GetContentBounds(BoundsDrawingContextWalker ctx) { Debug.Assert(ctx != null); WalkCurrentValue(ctx); return ctx.Bounds; } ////// Forward the current value of the content to the DrawingContextWalker /// methods. /// /// DrawingContextWalker to forward content to. void IDrawingContent.WalkContent(DrawingContextWalker ctx) { ((Drawing)this).WalkCurrentValue(ctx); } ////// Determines whether or not a point exists within the content /// /// Point to hit-test for. ////// 'true' if the point exists within the content, 'false' otherwise /// bool IDrawingContent.HitTestPoint(Point point) { return DrawingServices.HitTestPoint(this, point); } ////// Hit-tests a geometry against this content /// /// PathGeometry to hit-test for. ////// IntersectionDetail describing the result of the hit-test /// IntersectionDetail IDrawingContent.HitTestGeometry(PathGeometry geometry) { return DrawingServices.HitTestGeometry(this, geometry); } ////// Propagates an event handler to Freezables referenced by /// the content. /// /// Event handler to propagate /// 'true' to add the handler, 'false' to remove it void IDrawingContent.PropagateChangedHandler(EventHandler handler, bool adding) { if (!IsFrozen) { if (adding) { ((Drawing)this).Changed += handler; } else { ((Drawing)this).Changed -= handler; } } } ////// GetBounds to calculate the bounds of this drawing. /// internal Rect GetBounds() { BoundsDrawingContextWalker ctx = new BoundsDrawingContextWalker(); WalkCurrentValue(ctx); return ctx.Bounds; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Description: Drawing is the base Drawing class that defines the standard // interface which Drawing's must implement. // // History: // 2003/07/16 : [....] - Created it. // 2003/07/28 : [....] - Renamed it and hooked it up to the unmanaged code. // 2004/11/17 : timothyc - Repurposed Drawing from being a Changeable // implementation that contains render data into the base // class for the enumerable & modifiable Drawing subclasses. // 2005/01/26 : timothyc - Made Drawing abstract & removed legacy Drawing // support, including .Open() & IAddChild. // //--------------------------------------------------------------------------- using MS.Internal; using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Resources; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using System.Windows.Markup; using System.Windows.Threading; namespace System.Windows.Media { ////// Base class for the enumerable and modifiable Drawing subclasses. /// [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] public abstract partial class Drawing : Animatable, IDrawingContent, DUCE.IResource { #region Constructors ////// Constructor for Drawing /// ////// This constructor is internal to prevent external subclassing. /// internal Drawing() { } #endregion Constructors #region Public Properties ////// Bounds - the axis-aligned bounds of this Drawing. /// ////// Rect - the axis-aligned bounds of this Drawing. /// public Rect Bounds { get { ReadPreamble(); return GetBounds(); } } #endregion Public Properties #region Internal Methods ////// Calls methods on the DrawingContext that are equivalent to the /// Drawing with the Drawing's current value. /// internal abstract void WalkCurrentValue(DrawingContextWalker ctx); #endregion Internal Methods ////// Returns the bounding box occupied by the content /// ////// Bounding box occupied by the content /// Rect IDrawingContent.GetContentBounds(BoundsDrawingContextWalker ctx) { Debug.Assert(ctx != null); WalkCurrentValue(ctx); return ctx.Bounds; } ////// Forward the current value of the content to the DrawingContextWalker /// methods. /// /// DrawingContextWalker to forward content to. void IDrawingContent.WalkContent(DrawingContextWalker ctx) { ((Drawing)this).WalkCurrentValue(ctx); } ////// Determines whether or not a point exists within the content /// /// Point to hit-test for. ////// 'true' if the point exists within the content, 'false' otherwise /// bool IDrawingContent.HitTestPoint(Point point) { return DrawingServices.HitTestPoint(this, point); } ////// Hit-tests a geometry against this content /// /// PathGeometry to hit-test for. ////// IntersectionDetail describing the result of the hit-test /// IntersectionDetail IDrawingContent.HitTestGeometry(PathGeometry geometry) { return DrawingServices.HitTestGeometry(this, geometry); } ////// Propagates an event handler to Freezables referenced by /// the content. /// /// Event handler to propagate /// 'true' to add the handler, 'false' to remove it void IDrawingContent.PropagateChangedHandler(EventHandler handler, bool adding) { if (!IsFrozen) { if (adding) { ((Drawing)this).Changed += handler; } else { ((Drawing)this).Changed -= handler; } } } ////// GetBounds to calculate the bounds of this drawing. /// internal Rect GetBounds() { BoundsDrawingContextWalker ctx = new BoundsDrawingContextWalker(); WalkCurrentValue(ctx); return ctx.Bounds; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LocatorPartList.cs
- ContractCodeDomInfo.cs
- UIElementParaClient.cs
- CharEntityEncoderFallback.cs
- PopupEventArgs.cs
- CapabilitiesAssignment.cs
- ConnectionManager.cs
- TextViewBase.cs
- AnnotationComponentManager.cs
- EventDescriptor.cs
- RuntimeVariableList.cs
- ConnectionStringSettings.cs
- SafeWaitHandle.cs
- Queue.cs
- ProtectedConfigurationSection.cs
- processwaithandle.cs
- UnknownWrapper.cs
- Identifier.cs
- AssociatedControlConverter.cs
- SecurityTokenAuthenticator.cs
- TypeForwardedToAttribute.cs
- AnnotationHighlightLayer.cs
- WebSysDisplayNameAttribute.cs
- FindCompletedEventArgs.cs
- Size.cs
- AttributeCollection.cs
- AsymmetricAlgorithm.cs
- SafeEventLogReadHandle.cs
- MenuCommands.cs
- CmsUtils.cs
- DSASignatureFormatter.cs
- CollaborationHelperFunctions.cs
- SerializableTypeCodeDomSerializer.cs
- SchemaConstraints.cs
- MenuCommandService.cs
- EntityDataSourceWizardForm.cs
- ControlParameter.cs
- XPathChildIterator.cs
- ParallelEnumerable.cs
- AspProxy.cs
- SqlConnectionPoolProviderInfo.cs
- invalidudtexception.cs
- TaskFormBase.cs
- TypedAsyncResult.cs
- BindingNavigator.cs
- KeyTime.cs
- AsyncResult.cs
- CalendarAutomationPeer.cs
- TargetParameterCountException.cs
- SqlCommandSet.cs
- DnsPermission.cs
- XmlResolver.cs
- PathTooLongException.cs
- ValueChangedEventManager.cs
- PresentationAppDomainManager.cs
- InfoCardProofToken.cs
- AbsoluteQuery.cs
- PreApplicationStartMethodAttribute.cs
- DataSetUtil.cs
- UnknownBitmapEncoder.cs
- DoubleAnimationUsingPath.cs
- TimeManager.cs
- BaseParser.cs
- GroupQuery.cs
- XamlVector3DCollectionSerializer.cs
- SqlInternalConnectionSmi.cs
- FontSource.cs
- RegexCharClass.cs
- DataSourceXmlClassAttribute.cs
- RelativeSource.cs
- PrintControllerWithStatusDialog.cs
- DrawingImage.cs
- CellParaClient.cs
- DelegatedStream.cs
- HelpKeywordAttribute.cs
- AdPostCacheSubstitution.cs
- MetafileHeaderWmf.cs
- ColumnCollection.cs
- Encoder.cs
- PropertyMap.cs
- SystemTcpStatistics.cs
- unsafenativemethodstextservices.cs
- Predicate.cs
- MimeBasePart.cs
- SqlGenerator.cs
- DataSetViewSchema.cs
- FlowDocumentPage.cs
- TypeBrowserDialog.cs
- XmlSchemaAttribute.cs
- DataViewManagerListItemTypeDescriptor.cs
- TextHintingModeValidation.cs
- TextBreakpoint.cs
- ValueProviderWrapper.cs
- CapacityStreamGeometryContext.cs
- GridViewUpdateEventArgs.cs
- MasterPageBuildProvider.cs
- UserNameSecurityToken.cs
- BmpBitmapEncoder.cs
- TextEndOfParagraph.cs
- DataMember.cs