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
- ControlAdapter.cs
- XPathAncestorQuery.cs
- BigInt.cs
- StyleSelector.cs
- sapiproxy.cs
- SevenBitStream.cs
- NativeActivity.cs
- SqlInternalConnection.cs
- CountdownEvent.cs
- WCFModelStrings.Designer.cs
- DashStyles.cs
- TypeElementCollection.cs
- TakeOrSkipWhileQueryOperator.cs
- SoapTypeAttribute.cs
- IRCollection.cs
- PolyBezierSegment.cs
- DataRelationCollection.cs
- SecurityProtocolFactory.cs
- CustomServiceCredentials.cs
- ClientConfigurationHost.cs
- SystemEvents.cs
- SolidColorBrush.cs
- MeshGeometry3D.cs
- TracePayload.cs
- DynamicField.cs
- ComboBoxItem.cs
- Span.cs
- ListControlConvertEventArgs.cs
- TabControl.cs
- ReadOnlyObservableCollection.cs
- MenuAdapter.cs
- NoClickablePointException.cs
- CrossContextChannel.cs
- Variant.cs
- CancellationTokenRegistration.cs
- RelationshipFixer.cs
- StreamGeometry.cs
- StylusPointProperty.cs
- PointCollection.cs
- SemaphoreSlim.cs
- EnumerableCollectionView.cs
- Calendar.cs
- TextViewSelectionProcessor.cs
- PrefixQName.cs
- MasterPageParser.cs
- SortQuery.cs
- PagesChangedEventArgs.cs
- SystemIcmpV6Statistics.cs
- EventLogException.cs
- Point3DAnimation.cs
- DBSqlParserTable.cs
- sqlinternaltransaction.cs
- DiagnosticTraceSchemas.cs
- Descriptor.cs
- XamlRtfConverter.cs
- EqualityComparer.cs
- Metafile.cs
- KeyValuePairs.cs
- TableLayoutStyle.cs
- ColumnTypeConverter.cs
- ParsedAttributeCollection.cs
- IFlowDocumentViewer.cs
- Renderer.cs
- NumericUpDownAccelerationCollection.cs
- EventHandlerList.cs
- StatusBarItemAutomationPeer.cs
- Attributes.cs
- PropertyPath.cs
- HtmlButton.cs
- TaskFormBase.cs
- MultipartContentParser.cs
- Activator.cs
- GroupBoxAutomationPeer.cs
- ColumnWidthChangingEvent.cs
- PerformanceCounterLib.cs
- HttpCacheVaryByContentEncodings.cs
- BrowserCapabilitiesFactory.cs
- XmlCompatibilityReader.cs
- Base64Stream.cs
- NodeInfo.cs
- PeerTransportSecurityElement.cs
- XmlMemberMapping.cs
- MarkupProperty.cs
- ToolboxComponentsCreatedEventArgs.cs
- CultureTableRecord.cs
- hresults.cs
- SelectionItemProviderWrapper.cs
- ApplicationSettingsBase.cs
- Unit.cs
- TextTreeRootTextBlock.cs
- HttpCapabilitiesSectionHandler.cs
- CookieParameter.cs
- SymLanguageVendor.cs
- OdbcConnectionOpen.cs
- HttpResponse.cs
- ParseHttpDate.cs
- WebBrowserNavigatedEventHandler.cs
- SymmetricKeyWrap.cs
- ApplicationFileParser.cs
- SQLChars.cs