Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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 : [....] - Created it. // 2003/07/28 : [....] - 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
- WebBrowserSiteBase.cs
- ZipFileInfoCollection.cs
- COM2Enum.cs
- EntityDataReader.cs
- XPathBinder.cs
- SafeMILHandle.cs
- AuthenticationModuleElement.cs
- X509ThumbprintKeyIdentifierClause.cs
- ToolStripSplitButton.cs
- XmlSchemaSubstitutionGroup.cs
- TemplateKey.cs
- Permission.cs
- PlanCompiler.cs
- DataGridViewDataConnection.cs
- UrlMappingsSection.cs
- SafeNativeMethods.cs
- ConfigurationSectionCollection.cs
- Point3DCollection.cs
- safelinkcollection.cs
- ControlIdConverter.cs
- XmlLanguage.cs
- BamlBinaryReader.cs
- ColorConvertedBitmapExtension.cs
- RemotingHelper.cs
- ImmutableObjectAttribute.cs
- MembershipValidatePasswordEventArgs.cs
- DictionaryGlobals.cs
- PerformanceCounterPermission.cs
- NTAccount.cs
- DbConnectionStringCommon.cs
- CharStorage.cs
- FormViewPageEventArgs.cs
- HttpListenerPrefixCollection.cs
- Profiler.cs
- Select.cs
- FreeFormPanel.cs
- ControlCachePolicy.cs
- IntegrationExceptionEventArgs.cs
- PartialCachingControl.cs
- CanonicalFontFamilyReference.cs
- InvokeMemberBinder.cs
- Vars.cs
- ToolStripSettings.cs
- FormatterServices.cs
- Rectangle.cs
- StringAnimationUsingKeyFrames.cs
- TextRangeEditTables.cs
- HostedTransportConfigurationBase.cs
- CompilerScopeManager.cs
- StandardCommands.cs
- JapaneseCalendar.cs
- SqlCacheDependencyDatabase.cs
- VirtualPathUtility.cs
- ProfileGroupSettingsCollection.cs
- XsdDuration.cs
- SystemSounds.cs
- BindingCompleteEventArgs.cs
- DelegateSerializationHolder.cs
- SafeLocalAllocation.cs
- ProviderCommandInfoUtils.cs
- GestureRecognitionResult.cs
- GeneralTransformCollection.cs
- TableLayoutSettingsTypeConverter.cs
- XmlSignificantWhitespace.cs
- RightNameExpirationInfoPair.cs
- XmlILConstructAnalyzer.cs
- ClassGenerator.cs
- DataContractSet.cs
- PrimarySelectionAdorner.cs
- BindValidator.cs
- WebPartUtil.cs
- Identity.cs
- ToolStripOverflowButton.cs
- ConnectionStringsExpressionBuilder.cs
- TimerElapsedEvenArgs.cs
- WebRequestModuleElementCollection.cs
- IpcPort.cs
- HyperLinkDesigner.cs
- BamlResourceSerializer.cs
- AppearanceEditorPart.cs
- CollectionView.cs
- _KerberosClient.cs
- MSHTMLHost.cs
- XmlSchemaValidationException.cs
- Inline.cs
- FusionWrap.cs
- Point3DCollectionConverter.cs
- HttpValueCollection.cs
- TraversalRequest.cs
- DrawingVisualDrawingContext.cs
- designeractionbehavior.cs
- SafeFindHandle.cs
- SqlNotificationEventArgs.cs
- SystemWebCachingSectionGroup.cs
- CacheSection.cs
- MessageDecoder.cs
- ProcessModelInfo.cs
- PersonalizationProviderHelper.cs
- ScopelessEnumAttribute.cs
- SizeChangedInfo.cs