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
- CTreeGenerator.cs
- EntityClientCacheEntry.cs
- ByteAnimation.cs
- HttpResponse.cs
- DataGridToolTip.cs
- QueryTreeBuilder.cs
- AutomationPropertyInfo.cs
- ScrollData.cs
- EntityConnectionStringBuilder.cs
- BindingValueChangedEventArgs.cs
- PolygonHotSpot.cs
- WorkflowOperationAsyncResult.cs
- ResourceBinder.cs
- WCFBuildProvider.cs
- StructuredType.cs
- CancellableEnumerable.cs
- XmlCDATASection.cs
- ObjectListCommandsPage.cs
- ListSortDescriptionCollection.cs
- PaintValueEventArgs.cs
- CodeFieldReferenceExpression.cs
- SqlUtil.cs
- ExpressionNormalizer.cs
- CharacterShapingProperties.cs
- WebScriptServiceHost.cs
- UserControlCodeDomTreeGenerator.cs
- AttachInfo.cs
- ConstructorArgumentAttribute.cs
- TreeChangeInfo.cs
- SafeNativeMethods.cs
- ProfileSettings.cs
- ExternalException.cs
- RijndaelManagedTransform.cs
- CorruptingExceptionCommon.cs
- DateTimeOffset.cs
- ZipFileInfo.cs
- ReadOnlyHierarchicalDataSourceView.cs
- _Semaphore.cs
- HttpModuleCollection.cs
- NativeWindow.cs
- CodeDirectoryCompiler.cs
- IndexerNameAttribute.cs
- SQLDateTimeStorage.cs
- UpdateTracker.cs
- ProfilePropertySettings.cs
- GreenMethods.cs
- NetNamedPipeSecurity.cs
- IQueryable.cs
- SafeNativeMethodsOther.cs
- RoleManagerSection.cs
- DoubleCollectionConverter.cs
- TrustManagerMoreInformation.cs
- WebPartConnection.cs
- ContainerVisual.cs
- ScrollProviderWrapper.cs
- MimeTypePropertyAttribute.cs
- CompiledXpathExpr.cs
- PolicyValidationException.cs
- ProcessHostMapPath.cs
- TdsValueSetter.cs
- Maps.cs
- DataGridViewCheckBoxCell.cs
- BrushMappingModeValidation.cs
- XmlSerializerFactory.cs
- PageThemeBuildProvider.cs
- CompensationDesigner.cs
- KeyTimeConverter.cs
- X509IssuerSerialKeyIdentifierClause.cs
- ObjectDataSourceEventArgs.cs
- PackagingUtilities.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- ResourceDescriptionAttribute.cs
- RegexInterpreter.cs
- DataGridViewMethods.cs
- XmlSchemaSimpleContentRestriction.cs
- OleDbMetaDataFactory.cs
- CustomErrorCollection.cs
- SubMenuStyleCollection.cs
- Transform3DGroup.cs
- MenuAutomationPeer.cs
- SettingsPropertyValueCollection.cs
- ExceptQueryOperator.cs
- EncodingInfo.cs
- XsdDuration.cs
- ECDiffieHellman.cs
- ValidateNames.cs
- DynamicResourceExtensionConverter.cs
- NavigationService.cs
- Inflater.cs
- SQLDouble.cs
- DbDataSourceEnumerator.cs
- HtmlTableCell.cs
- SchemaSetCompiler.cs
- GZipDecoder.cs
- UnsafeNativeMethods.cs
- SlotInfo.cs
- CqlParser.cs
- FormsIdentity.cs
- MediaScriptCommandRoutedEventArgs.cs
- TextElementEnumerator.cs