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
- CapabilitiesRule.cs
- DataObjectCopyingEventArgs.cs
- ExpressionBindingCollection.cs
- EditorZoneBase.cs
- ReferentialConstraint.cs
- Mutex.cs
- DynamicPropertyHolder.cs
- ListControlConvertEventArgs.cs
- HtmlTitle.cs
- ScrollPatternIdentifiers.cs
- TimerElapsedEvenArgs.cs
- JsonEncodingStreamWrapper.cs
- BufferBuilder.cs
- MembershipUser.cs
- DesignerOptionService.cs
- TextSpanModifier.cs
- MetadataItemEmitter.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ServiceOperationParameter.cs
- HtmlTable.cs
- PointKeyFrameCollection.cs
- LoginAutoFormat.cs
- HtmlSelect.cs
- ImageFormatConverter.cs
- NativeCompoundFileAPIs.cs
- RenamedEventArgs.cs
- WorkBatch.cs
- NameValueCollection.cs
- ProxySimple.cs
- EventMappingSettingsCollection.cs
- DefinitionBase.cs
- StringComparer.cs
- ConnectionManagementElement.cs
- EntityCommand.cs
- AbstractExpressions.cs
- odbcmetadatacollectionnames.cs
- AccessDataSource.cs
- PropertyEntry.cs
- IndexerNameAttribute.cs
- ResXResourceSet.cs
- DebugView.cs
- Separator.cs
- EventHandlersStore.cs
- DesignerAutoFormatStyle.cs
- ConnectionProviderAttribute.cs
- MasterPageParser.cs
- RegexCompiler.cs
- MultipleViewProviderWrapper.cs
- GetPageCompletedEventArgs.cs
- NativeMethodsOther.cs
- CompilerError.cs
- UrlMappingsModule.cs
- ScrollData.cs
- DeclaredTypeValidatorAttribute.cs
- UnmanagedMemoryStream.cs
- COSERVERINFO.cs
- MetadataCache.cs
- StatusBar.cs
- EntityDataSourceSelectingEventArgs.cs
- WmlPhoneCallAdapter.cs
- StringPropertyBuilder.cs
- FormsAuthenticationUserCollection.cs
- SAPIEngineTypes.cs
- SqlDataSourceQueryEditorForm.cs
- CodeMemberEvent.cs
- SendKeys.cs
- ValidationContext.cs
- LinqDataSourceUpdateEventArgs.cs
- UpdateManifestForBrowserApplication.cs
- TimelineClockCollection.cs
- ExecutionScope.cs
- XmlStringTable.cs
- XPathBinder.cs
- Dictionary.cs
- GroupBox.cs
- QilPatternVisitor.cs
- SecurityResources.cs
- DesignBindingPicker.cs
- CodeSnippetExpression.cs
- MenuAutomationPeer.cs
- XamlSerializationHelper.cs
- OleDbParameterCollection.cs
- SynchronizationScope.cs
- CanonicalizationDriver.cs
- versioninfo.cs
- DragStartedEventArgs.cs
- SecuritySessionClientSettings.cs
- TypedDatasetGenerator.cs
- OdbcRowUpdatingEvent.cs
- WebAdminConfigurationHelper.cs
- CustomErrorsSectionWrapper.cs
- CodeArrayIndexerExpression.cs
- ClientRoleProvider.cs
- WizardForm.cs
- TextCollapsingProperties.cs
- DynamicExpression.cs
- Math.cs
- WindowsTooltip.cs
- NativeRightsManagementAPIsStructures.cs
- LinkButton.cs