Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- NeutralResourcesLanguageAttribute.cs
- ReadOnlyCollectionBase.cs
- AppDomainInstanceProvider.cs
- loginstatus.cs
- ExecutionEngineException.cs
- DBCommandBuilder.cs
- AppDomainAttributes.cs
- HashCodeCombiner.cs
- CodeCompiler.cs
- SimpleHandlerFactory.cs
- DesignerForm.cs
- DataAdapter.cs
- Converter.cs
- PrimaryKeyTypeConverter.cs
- ContentDisposition.cs
- BindingList.cs
- Zone.cs
- ListBindableAttribute.cs
- GroupBoxAutomationPeer.cs
- XPathNavigator.cs
- SettingsSavedEventArgs.cs
- Column.cs
- GetChildSubtree.cs
- ElementHostAutomationPeer.cs
- FreezableDefaultValueFactory.cs
- ProfileBuildProvider.cs
- TableSectionStyle.cs
- HierarchicalDataTemplate.cs
- XmlQuerySequence.cs
- SecurityState.cs
- ProjectionCamera.cs
- WindowsStatic.cs
- InheritanceAttribute.cs
- RadioButtonFlatAdapter.cs
- CollectionBase.cs
- WebProxyScriptElement.cs
- MasterPageCodeDomTreeGenerator.cs
- OutputCacheSettings.cs
- WebConfigurationManager.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- SiteMapNode.cs
- Regex.cs
- ProviderCommandInfoUtils.cs
- DbBuffer.cs
- XmlConverter.cs
- BufferBuilder.cs
- ListViewContainer.cs
- ArrayList.cs
- ToolStripActionList.cs
- UrlAuthFailedErrorFormatter.cs
- FunctionMappingTranslator.cs
- SizeF.cs
- ReadOnlyDataSourceView.cs
- TextServicesLoader.cs
- RecommendedAsConfigurableAttribute.cs
- DocumentXmlWriter.cs
- StorageTypeMapping.cs
- IgnoreFileBuildProvider.cs
- MetadataHelper.cs
- HtmlMobileTextWriter.cs
- OleDbTransaction.cs
- DispatcherHookEventArgs.cs
- CodeThrowExceptionStatement.cs
- RangeValueProviderWrapper.cs
- InstanceDataCollectionCollection.cs
- XmlSchemaInferenceException.cs
- ProtocolsConfiguration.cs
- TextTrailingWordEllipsis.cs
- UniqueContractNameValidationBehavior.cs
- DoubleUtil.cs
- Underline.cs
- PropertyDescriptor.cs
- Validator.cs
- RayHitTestParameters.cs
- GridItemProviderWrapper.cs
- DataGridViewRowCollection.cs
- CaseInsensitiveComparer.cs
- SafeNativeMethodsOther.cs
- SimpleExpression.cs
- WrappingXamlSchemaContext.cs
- StylusPointPropertyInfo.cs
- HiddenFieldPageStatePersister.cs
- ConfigurationSectionGroup.cs
- StrokeCollectionConverter.cs
- ProfileSection.cs
- ProcessThread.cs
- MonthChangedEventArgs.cs
- BufferedGraphicsManager.cs
- DocumentsTrace.cs
- FixedSOMPageElement.cs
- PathFigureCollection.cs
- DataContractJsonSerializer.cs
- AsyncStreamReader.cs
- MappingException.cs
- CreateParams.cs
- Bidi.cs
- MsmqAuthenticationMode.cs
- HandlerWithFactory.cs
- UndoManager.cs
- XmlSchemaImporter.cs