Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / System / Windows / Media / DrawingBrush.cs / 1 / DrawingBrush.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: DrawingBrush.cs // // Description: This file contains the implementation of DrawingBrush. // The DrawingBrush is a TileBrush which defines its tile content // by use of a Drawing. // // History: // 2003/07/17 : adsmith - Created it. // 2003/07/28 : adsmith - Renamed it and hooked it up to the unmanaged code. // //--------------------------------------------------------------------------- using MS.Internal; using System; using System.ComponentModel; using System.Diagnostics; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Media.Composition; namespace System.Windows.Media { ////// DrawingBrush - This TileBrush defines its content as a Drawing /// public sealed partial class DrawingBrush : TileBrush { #region Constructors ////// Default constructor for DrawingBrush. The resulting Brush has no content. /// public DrawingBrush() { } ////// DrawingBrush Constructor where the image is set to the parameter's value /// /// The Drawing representing the contents of this Brush. public DrawingBrush(Drawing drawing) { Drawing = drawing; } #endregion Constructors ////// This node can introduce graphness /// internal override bool CanIntroduceGraphness() { return true; } ////// Obtains the current bounds of the brush's content /// /// Output bounds of content protected override void GetContentBounds(out Rect contentBounds) { contentBounds = Drawing.GetBounds(); } #region Realization Support ////// A drawing brush requires realizations if the drawing assigned to it requires realizations. /// Note that Precompute is best called only once per managed frame. /// internal override void Precompute() { // Drawing drawing = Drawing; if (drawing != null) { drawing.PrecomputeCore(); _requiresRealizationUpdates = drawing.RequiresRealizationUpdates; } else { _requiresRealizationUpdates = false; } } ////// Checks if realization updates are requried for this resource. /// Before querying this property Precompute must be called to validate the property /// value. /// internal override bool RequiresRealizationUpdates { get { return _requiresRealizationUpdates; } } ////// Updates realizations for all dependant resources that might require realization updates. /// internal override void UpdateRealizations(Rect fillShapeBounds, RealizationContext ctx) { if (_requiresRealizationUpdates) { Matrix m; Drawing drawing = Drawing; Debug.Assert(drawing != null); // RequiresRealizationUpdates sets the _requiresRealizationUpdates member to false if drawing == null. GetTileBrushMapping(fillShapeBounds, out m); ctx.TransformStack.Push(ref m, true); drawing.UpdateRealizations(ctx); ctx.TransformStack.Pop(); } } #endregion private bool _requiresRealizationUpdates; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: DrawingBrush.cs // // Description: This file contains the implementation of DrawingBrush. // The DrawingBrush is a TileBrush which defines its tile content // by use of a Drawing. // // History: // 2003/07/17 : adsmith - Created it. // 2003/07/28 : adsmith - Renamed it and hooked it up to the unmanaged code. // //--------------------------------------------------------------------------- using MS.Internal; using System; using System.ComponentModel; using System.Diagnostics; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Media.Composition; namespace System.Windows.Media { ////// DrawingBrush - This TileBrush defines its content as a Drawing /// public sealed partial class DrawingBrush : TileBrush { #region Constructors ////// Default constructor for DrawingBrush. The resulting Brush has no content. /// public DrawingBrush() { } ////// DrawingBrush Constructor where the image is set to the parameter's value /// /// The Drawing representing the contents of this Brush. public DrawingBrush(Drawing drawing) { Drawing = drawing; } #endregion Constructors ////// This node can introduce graphness /// internal override bool CanIntroduceGraphness() { return true; } ////// Obtains the current bounds of the brush's content /// /// Output bounds of content protected override void GetContentBounds(out Rect contentBounds) { contentBounds = Drawing.GetBounds(); } #region Realization Support ////// A drawing brush requires realizations if the drawing assigned to it requires realizations. /// Note that Precompute is best called only once per managed frame. /// internal override void Precompute() { // Drawing drawing = Drawing; if (drawing != null) { drawing.PrecomputeCore(); _requiresRealizationUpdates = drawing.RequiresRealizationUpdates; } else { _requiresRealizationUpdates = false; } } ////// Checks if realization updates are requried for this resource. /// Before querying this property Precompute must be called to validate the property /// value. /// internal override bool RequiresRealizationUpdates { get { return _requiresRealizationUpdates; } } ////// Updates realizations for all dependant resources that might require realization updates. /// internal override void UpdateRealizations(Rect fillShapeBounds, RealizationContext ctx) { if (_requiresRealizationUpdates) { Matrix m; Drawing drawing = Drawing; Debug.Assert(drawing != null); // RequiresRealizationUpdates sets the _requiresRealizationUpdates member to false if drawing == null. GetTileBrushMapping(fillShapeBounds, out m); ctx.TransformStack.Push(ref m, true); drawing.UpdateRealizations(ctx); ctx.TransformStack.Pop(); } } #endregion private bool _requiresRealizationUpdates; } } // 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
- ConfigXmlWhitespace.cs
- ContextBase.cs
- ToolStripLabel.cs
- MulticastDelegate.cs
- EntityParameter.cs
- SqlReorderer.cs
- TransportManager.cs
- MessagingActivityHelper.cs
- DefaultProfileManager.cs
- CatalogPartCollection.cs
- XmlLanguage.cs
- ContentWrapperAttribute.cs
- BitmapMetadata.cs
- DbProviderConfigurationHandler.cs
- RepeaterItemEventArgs.cs
- NumberFormatInfo.cs
- MSAANativeProvider.cs
- DockPattern.cs
- TemplateBuilder.cs
- WriteableBitmap.cs
- XPathScanner.cs
- PasswordBoxAutomationPeer.cs
- FlowStep.cs
- Models.cs
- DependencyPropertyConverter.cs
- SqlDeflator.cs
- SecurityTokenResolver.cs
- DesignSurfaceManager.cs
- SqlWebEventProvider.cs
- RectangleGeometry.cs
- PropertyItem.cs
- XPathDocument.cs
- HashCodeCombiner.cs
- ClientRoleProvider.cs
- SystemColors.cs
- ExpandSegment.cs
- PolicyUnit.cs
- DocumentViewerHelper.cs
- FixUp.cs
- XmlParserContext.cs
- altserialization.cs
- Document.cs
- WorkflowServiceOperationListItem.cs
- ParsedRoute.cs
- IODescriptionAttribute.cs
- Link.cs
- InputLangChangeEvent.cs
- SqlGenerator.cs
- SectionInput.cs
- XsdValidatingReader.cs
- Drawing.cs
- PropertyManager.cs
- HitTestParameters.cs
- BooleanExpr.cs
- QuotedStringWriteStateInfo.cs
- UnknownWrapper.cs
- RepeatBehavior.cs
- ObjectDataSourceEventArgs.cs
- BaseTemplateCodeDomTreeGenerator.cs
- HttpValueCollection.cs
- BindingValueChangedEventArgs.cs
- XmlSchemaAnnotation.cs
- XmlAttributeHolder.cs
- Figure.cs
- UserThread.cs
- Geometry3D.cs
- SQLBytes.cs
- BuildResultCache.cs
- ResourceWriter.cs
- BaseCollection.cs
- XamlStream.cs
- DataFormat.cs
- ParameterCollection.cs
- UserNamePasswordClientCredential.cs
- StringComparer.cs
- TypeConverters.cs
- Expression.cs
- UndirectedGraph.cs
- BaseCAMarshaler.cs
- PageClientProxyGenerator.cs
- SqlLiftWhereClauses.cs
- OleDbPropertySetGuid.cs
- ChildTable.cs
- SafeFileHandle.cs
- HashMembershipCondition.cs
- ValueSerializerAttribute.cs
- PartitionResolver.cs
- ToolstripProfessionalRenderer.cs
- StrongTypingException.cs
- CalendarDay.cs
- ISO2022Encoding.cs
- OutputScopeManager.cs
- RectAnimation.cs
- RectConverter.cs
- SequentialOutput.cs
- MessageHeaderDescriptionCollection.cs
- SqlSelectStatement.cs
- StylusPointProperties.cs
- MsdtcClusterUtils.cs
- CachedBitmap.cs