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
- XhtmlBasicLinkAdapter.cs
- BasicCommandTreeVisitor.cs
- LineServicesCallbacks.cs
- SignatureToken.cs
- Effect.cs
- ReadOnlyCollectionBase.cs
- QuaternionAnimation.cs
- JsonObjectDataContract.cs
- PageRequestManager.cs
- XmlSerializerFactory.cs
- Material.cs
- PointAnimationUsingKeyFrames.cs
- EntityClientCacheEntry.cs
- SqlDataSourceStatusEventArgs.cs
- InstanceOwnerException.cs
- DataGridViewColumnCollection.cs
- AssemblyBuilderData.cs
- TextBoxBase.cs
- XmlNotation.cs
- Processor.cs
- ClipboardProcessor.cs
- CngKeyCreationParameters.cs
- StackOverflowException.cs
- ComponentEvent.cs
- Expander.cs
- EdmPropertyAttribute.cs
- ProbeRequestResponseAsyncResult.cs
- StringUtil.cs
- PrinterSettings.cs
- HtmlMeta.cs
- StopStoryboard.cs
- FixedTextContainer.cs
- DataGridHelper.cs
- FillRuleValidation.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- TemplateInstanceAttribute.cs
- Debug.cs
- HostingEnvironmentWrapper.cs
- UrlMapping.cs
- Profiler.cs
- EnumValAlphaComparer.cs
- UserControlCodeDomTreeGenerator.cs
- NetTcpBindingElement.cs
- DBSchemaTable.cs
- TableLayoutColumnStyleCollection.cs
- MenuCommand.cs
- CdpEqualityComparer.cs
- Msec.cs
- AuthenticationService.cs
- LoginCancelEventArgs.cs
- SplashScreenNativeMethods.cs
- PopOutPanel.cs
- SkewTransform.cs
- XdrBuilder.cs
- BindableAttribute.cs
- DnsEndpointIdentity.cs
- StreamingContext.cs
- XpsPartBase.cs
- TitleStyle.cs
- ParseNumbers.cs
- OperationInvokerTrace.cs
- SecurityHeader.cs
- GridItemPatternIdentifiers.cs
- cache.cs
- Logging.cs
- XmlSchemaChoice.cs
- NavigatingCancelEventArgs.cs
- ListViewItem.cs
- BinaryParser.cs
- Animatable.cs
- DynamicDataManager.cs
- ArrangedElementCollection.cs
- IISMapPath.cs
- Preprocessor.cs
- BrowserTree.cs
- TextWriterEngine.cs
- GenericPrincipal.cs
- querybuilder.cs
- SoundPlayer.cs
- DataGridViewColumn.cs
- InkSerializer.cs
- BitConverter.cs
- figurelengthconverter.cs
- SessionIDManager.cs
- FileSystemEventArgs.cs
- TemplateField.cs
- CmsUtils.cs
- HtmlWindowCollection.cs
- ToolStripStatusLabel.cs
- EntityStoreSchemaFilterEntry.cs
- FormattedText.cs
- ConfigPathUtility.cs
- OperationValidationEventArgs.cs
- SocketInformation.cs
- EmptyEnumerator.cs
- Span.cs
- SystemResourceKey.cs
- InputScopeAttribute.cs
- BaseInfoTable.cs
- ImageSourceConverter.cs