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
- ColorTransform.cs
- rsa.cs
- DBAsyncResult.cs
- ResXResourceSet.cs
- CheckBox.cs
- ContainerFilterService.cs
- ReaderWriterLock.cs
- XmlReader.cs
- EventArgs.cs
- SqlCrossApplyToCrossJoin.cs
- CqlBlock.cs
- WebPartsPersonalizationAuthorization.cs
- KnowledgeBase.cs
- DateTimeConverter2.cs
- BindingBase.cs
- SqlDataReader.cs
- CodeGotoStatement.cs
- ComplexPropertyEntry.cs
- MenuAdapter.cs
- ResourceSetExpression.cs
- Graphics.cs
- DetailsView.cs
- EncoderFallback.cs
- DirectoryLocalQuery.cs
- DecoderBestFitFallback.cs
- URLBuilder.cs
- LifetimeServices.cs
- SafeThreadHandle.cs
- _AutoWebProxyScriptHelper.cs
- SessionEndedEventArgs.cs
- DebugTracing.cs
- SoapElementAttribute.cs
- PolygonHotSpot.cs
- ValidateNames.cs
- Bind.cs
- SHA1CryptoServiceProvider.cs
- Vector3DConverter.cs
- ECDsa.cs
- WeakEventManager.cs
- UInt32Storage.cs
- SocketAddress.cs
- SecurityToken.cs
- ExtensionSimplifierMarkupObject.cs
- EmbossBitmapEffect.cs
- NonBatchDirectoryCompiler.cs
- ConnectivityStatus.cs
- ExeContext.cs
- SmtpMail.cs
- EnumConverter.cs
- XPathAxisIterator.cs
- DockAndAnchorLayout.cs
- SqlBuilder.cs
- SpeechRecognizer.cs
- TableSectionStyle.cs
- BitmapVisualManager.cs
- PolygonHotSpot.cs
- ConvertersCollection.cs
- UndoUnit.cs
- CacheAxisQuery.cs
- PtsHost.cs
- HttpRuntimeSection.cs
- GridViewDeletedEventArgs.cs
- DataSetSchema.cs
- XmlILIndex.cs
- CodeObjectCreateExpression.cs
- _ConnectStream.cs
- MimeWriter.cs
- ZipPackage.cs
- DateTimeOffset.cs
- ProxyWebPart.cs
- SequentialWorkflowRootDesigner.cs
- SchemaEntity.cs
- MenuTracker.cs
- ChangeTracker.cs
- BStrWrapper.cs
- ListViewAutomationPeer.cs
- UiaCoreTypesApi.cs
- EditorBrowsableAttribute.cs
- SHA1Managed.cs
- TextStore.cs
- SqlTriggerContext.cs
- CodeAccessPermission.cs
- AssemblyInfo.cs
- XPathItem.cs
- PointKeyFrameCollection.cs
- ThreadAttributes.cs
- Base64Encoding.cs
- PropertyTabAttribute.cs
- EmptyControlCollection.cs
- CompoundFileStorageReference.cs
- CommandDevice.cs
- BufferModesCollection.cs
- PointAnimationBase.cs
- PriorityRange.cs
- COM2ColorConverter.cs
- XslAstAnalyzer.cs
- ConfigurationStrings.cs
- TypeForwardedFromAttribute.cs
- ImmutableObjectAttribute.cs
- AssemblySettingAttributes.cs