Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- SizeChangedEventArgs.cs
- Label.cs
- RbTree.cs
- NavigationExpr.cs
- BindableTemplateBuilder.cs
- RSAPKCS1KeyExchangeFormatter.cs
- webclient.cs
- DataGridViewImageCell.cs
- SHA256Managed.cs
- FileCodeGroup.cs
- MenuItemStyle.cs
- SrgsGrammarCompiler.cs
- CatalogZoneBase.cs
- SecureUICommand.cs
- Knowncolors.cs
- HtmlTextArea.cs
- ValidationHelper.cs
- WCFBuildProvider.cs
- FormViewDeletedEventArgs.cs
- SqlDataAdapter.cs
- ResourceProviderFactory.cs
- KeyBinding.cs
- ParentQuery.cs
- Types.cs
- ObjectAnimationUsingKeyFrames.cs
- DataControlLinkButton.cs
- ErrorWrapper.cs
- InputReportEventArgs.cs
- Sequence.cs
- SafeProcessHandle.cs
- XmlAttributes.cs
- EndpointInfo.cs
- NavigationHelper.cs
- XmlSchemaIdentityConstraint.cs
- SqlTriggerAttribute.cs
- MsmqChannelListenerBase.cs
- EvidenceBase.cs
- ScriptComponentDescriptor.cs
- DeploymentSection.cs
- PropertyGridView.cs
- IdentityModelStringsVersion1.cs
- ToolStripControlHost.cs
- DataServiceHostFactory.cs
- ScrollBarRenderer.cs
- OleDbFactory.cs
- EndPoint.cs
- TransactedBatchingBehavior.cs
- HttpRuntimeSection.cs
- RegexReplacement.cs
- HashAlgorithm.cs
- LinqDataSourceDeleteEventArgs.cs
- DataControlButton.cs
- Msec.cs
- BlobPersonalizationState.cs
- Rule.cs
- QueryOutputWriter.cs
- DeflateStream.cs
- IImplicitResourceProvider.cs
- MenuItem.cs
- FontInfo.cs
- DependentTransaction.cs
- SpecialNameAttribute.cs
- ResolveNameEventArgs.cs
- SqlCacheDependencyDatabaseCollection.cs
- ConfigurationManagerInternalFactory.cs
- BaseTemplateBuildProvider.cs
- KeyPressEvent.cs
- GroupLabel.cs
- SatelliteContractVersionAttribute.cs
- ModifierKeysConverter.cs
- SafeTimerHandle.cs
- VisualStyleElement.cs
- ResourceIDHelper.cs
- StylusSystemGestureEventArgs.cs
- ContextMenu.cs
- InsufficientExecutionStackException.cs
- SqlConnectionHelper.cs
- MimeWriter.cs
- TextBoxLine.cs
- TransformerInfo.cs
- validationstate.cs
- StrongTypingException.cs
- TextTreeInsertElementUndoUnit.cs
- Int16AnimationBase.cs
- AssemblyBuilder.cs
- webeventbuffer.cs
- SimpleLine.cs
- FrameworkElementFactoryMarkupObject.cs
- DataQuery.cs
- TemplateBindingExpression.cs
- SqlDataAdapter.cs
- ReflectionUtil.cs
- TableAutomationPeer.cs
- HtmlInputReset.cs
- SchemaElementDecl.cs
- DataGridViewHitTestInfo.cs
- documentsequencetextcontainer.cs
- Range.cs
- XPathSelectionIterator.cs
- EntityDataSourceWizardForm.cs