Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- NavigationHelper.cs
- DoubleAnimation.cs
- CodeDomLoader.cs
- PrincipalPermission.cs
- DiagnosticsConfiguration.cs
- MessageHeaderAttribute.cs
- StringKeyFrameCollection.cs
- DataTemplate.cs
- NetworkStream.cs
- ProfilePropertyMetadata.cs
- RepeaterCommandEventArgs.cs
- SchemeSettingElement.cs
- FSWPathEditor.cs
- Error.cs
- TokenBasedSet.cs
- Formatter.cs
- AssemblyCacheEntry.cs
- SiteMapNodeItem.cs
- WindowsPen.cs
- Rules.cs
- LongPath.cs
- SerializableAttribute.cs
- ContentPresenter.cs
- Funcletizer.cs
- FragmentQueryProcessor.cs
- cryptoapiTransform.cs
- DbDataSourceEnumerator.cs
- XmlSchemaObjectTable.cs
- ToolStripContainer.cs
- SqlCacheDependencyDatabaseCollection.cs
- PageContentCollection.cs
- PointCollection.cs
- figurelengthconverter.cs
- ToolStripDropDownMenu.cs
- ValidationResult.cs
- Parameter.cs
- SlipBehavior.cs
- KeyConstraint.cs
- FileIOPermission.cs
- PrintDialog.cs
- Type.cs
- QueryOutputWriterV1.cs
- SID.cs
- TextEndOfParagraph.cs
- ReaderWriterLock.cs
- SemaphoreFullException.cs
- SimpleWebHandlerParser.cs
- ConstraintConverter.cs
- DataAdapter.cs
- WhitespaceRule.cs
- ObjectStateFormatter.cs
- CompositeControlDesigner.cs
- ThreadExceptionEvent.cs
- ToolStripTextBox.cs
- NativeMethodsCLR.cs
- UniqueIdentifierService.cs
- NetSectionGroup.cs
- TableLayout.cs
- TransactionException.cs
- controlskin.cs
- BulletedListEventArgs.cs
- BezierSegment.cs
- _Connection.cs
- TemplateControlBuildProvider.cs
- CodeDefaultValueExpression.cs
- TokenizerHelper.cs
- DataGridViewColumnCollection.cs
- AttributeUsageAttribute.cs
- CapabilitiesRule.cs
- NamedPipeTransportManager.cs
- ControlsConfig.cs
- ScrollData.cs
- SyndicationSerializer.cs
- EntityWrapper.cs
- PixelFormats.cs
- PageParser.cs
- IntegerCollectionEditor.cs
- ColorTranslator.cs
- VersionedStreamOwner.cs
- QuaternionConverter.cs
- Baml2006Reader.cs
- SoapObjectInfo.cs
- OleDbParameter.cs
- CodeVariableReferenceExpression.cs
- AdjustableArrowCap.cs
- IPPacketInformation.cs
- QilBinary.cs
- StreamWriter.cs
- MultipleViewProviderWrapper.cs
- FormatVersion.cs
- ToolStripScrollButton.cs
- GorillaCodec.cs
- HttpListenerPrefixCollection.cs
- MatcherBuilder.cs
- Pkcs7Recipient.cs
- ThicknessKeyFrameCollection.cs
- ColorInterpolationModeValidation.cs
- ErrorStyle.cs
- Int64KeyFrameCollection.cs
- PipeConnection.cs