Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PermissionToken.cs
- ListViewItem.cs
- PropertyGridDesigner.cs
- SafeNativeMethods.cs
- BamlLocalizabilityResolver.cs
- RecordBuilder.cs
- MultiPageTextView.cs
- PrefixHandle.cs
- SystemDiagnosticsSection.cs
- Point3D.cs
- _Connection.cs
- IgnoreFileBuildProvider.cs
- HTTPNotFoundHandler.cs
- bidPrivateBase.cs
- ResolveRequestResponseAsyncResult.cs
- BinarySerializer.cs
- FixedStringLookup.cs
- PKCS1MaskGenerationMethod.cs
- SimplePropertyEntry.cs
- ACE.cs
- Variant.cs
- RuleSetCollection.cs
- DesignerView.cs
- EmptyEnumerable.cs
- PageThemeParser.cs
- IdentityVerifier.cs
- SafeCryptoHandles.cs
- Site.cs
- baseaxisquery.cs
- TextDpi.cs
- LineInfo.cs
- RemoveStoryboard.cs
- DefaultPrintController.cs
- IdentityValidationException.cs
- OleDbStruct.cs
- DbConnectionPoolCounters.cs
- SizeChangedEventArgs.cs
- ObjectListDesigner.cs
- StylusButtonCollection.cs
- XmlNamedNodeMap.cs
- commandenforcer.cs
- SpnEndpointIdentity.cs
- SHA256.cs
- TransactedReceiveScope.cs
- AlternateViewCollection.cs
- XsdBuildProvider.cs
- NodeLabelEditEvent.cs
- MessageQueueException.cs
- ResXBuildProvider.cs
- NavigatorInput.cs
- TextEffect.cs
- CreateUserWizardDesigner.cs
- ToolStripDropDownMenu.cs
- DesignerSerializerAttribute.cs
- OdbcConnection.cs
- ScrollProperties.cs
- Msec.cs
- DataFormat.cs
- TransformGroup.cs
- CompositeTypefaceMetrics.cs
- EntityDataSourceChangedEventArgs.cs
- ContextMenuStrip.cs
- SecurityException.cs
- ItemContainerGenerator.cs
- Misc.cs
- MissingManifestResourceException.cs
- XmlSerializableWriter.cs
- BuildProvider.cs
- GPRECTF.cs
- WinCategoryAttribute.cs
- GeometryValueSerializer.cs
- ProcessThreadCollection.cs
- CompletedAsyncResult.cs
- SspiNegotiationTokenProviderState.cs
- LambdaCompiler.Generated.cs
- StickyNoteContentControl.cs
- BuildProviderCollection.cs
- Parameter.cs
- AnyReturnReader.cs
- ToolStripRenderEventArgs.cs
- EventLogEntryCollection.cs
- QilTargetType.cs
- Rectangle.cs
- GeometryDrawing.cs
- PenLineJoinValidation.cs
- XmlSchemaImport.cs
- PositiveTimeSpanValidatorAttribute.cs
- PermissionToken.cs
- Token.cs
- SkewTransform.cs
- ActiveXSerializer.cs
- LocatorPart.cs
- PanelStyle.cs
- SecurityPermission.cs
- DragStartedEventArgs.cs
- DropShadowBitmapEffect.cs
- MultiViewDesigner.cs
- CodeSnippetStatement.cs
- XPathNodePointer.cs
- DataGridViewHitTestInfo.cs