Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- ConnectionManagementElement.cs
- GlobalItem.cs
- WindowsImpersonationContext.cs
- SBCSCodePageEncoding.cs
- CurrentChangingEventArgs.cs
- DurableDispatcherAddressingFault.cs
- WorkflowServiceAttributesTypeConverter.cs
- AdPostCacheSubstitution.cs
- UnitControl.cs
- EditingScope.cs
- Debug.cs
- ResourceDescriptionAttribute.cs
- WorkflowTraceTransfer.cs
- MergeEnumerator.cs
- IteratorFilter.cs
- ByteStack.cs
- X509CertificateStore.cs
- TokenBasedSetEnumerator.cs
- ChangeDirector.cs
- ToolboxService.cs
- XmlSerializationGeneratedCode.cs
- HtmlLink.cs
- OleDbRowUpdatedEvent.cs
- TextMarkerSource.cs
- Pair.cs
- TemplatedMailWebEventProvider.cs
- TemplatedEditableDesignerRegion.cs
- FixedHyperLink.cs
- FileAuthorizationModule.cs
- SurrogateEncoder.cs
- ValuePattern.cs
- Formatter.cs
- UnmanagedHandle.cs
- XmlEntity.cs
- CommandLibraryHelper.cs
- DbBuffer.cs
- AutoResizedEvent.cs
- TextAnchor.cs
- SessionParameter.cs
- LinqDataView.cs
- PeerContact.cs
- SortKey.cs
- SpellerHighlightLayer.cs
- ProvidersHelper.cs
- SecurityAlgorithmSuiteConverter.cs
- Constant.cs
- CodeRemoveEventStatement.cs
- CheckedListBox.cs
- WmlObjectListAdapter.cs
- WindowInteractionStateTracker.cs
- AnnotationHelper.cs
- LoginUtil.cs
- ControlAdapter.cs
- TokenCreationParameter.cs
- WindowsFormsSynchronizationContext.cs
- MessageSmuggler.cs
- TextElement.cs
- Events.cs
- FormViewUpdateEventArgs.cs
- ColorConverter.cs
- ToolStripCodeDomSerializer.cs
- TextServicesManager.cs
- RowUpdatingEventArgs.cs
- TextRunTypographyProperties.cs
- OperatingSystemVersionCheck.cs
- SafeProcessHandle.cs
- HttpRequest.cs
- GZipDecoder.cs
- TypeNameConverter.cs
- XmlSchemaImporter.cs
- ScriptReferenceBase.cs
- Label.cs
- TrackBar.cs
- SecurityTokenProvider.cs
- BitVector32.cs
- LabelDesigner.cs
- TableRow.cs
- objectquery_tresulttype.cs
- StorageConditionPropertyMapping.cs
- RoutedUICommand.cs
- PersistenceMetadataNamespace.cs
- PKCS1MaskGenerationMethod.cs
- Publisher.cs
- BaseInfoTable.cs
- ObjRef.cs
- RSAPKCS1KeyExchangeFormatter.cs
- HybridDictionary.cs
- PixelFormatConverter.cs
- PrintPreviewDialog.cs
- AdapterUtil.cs
- VideoDrawing.cs
- PtsHelper.cs
- ComponentDispatcherThread.cs
- ColumnResizeUndoUnit.cs
- DesignTimeValidationFeature.cs
- MulticastIPAddressInformationCollection.cs
- PrintPreviewDialog.cs
- SmiMetaDataProperty.cs
- EventTask.cs
- JoinSymbol.cs