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
- StateValidator.cs
- StoreContentChangedEventArgs.cs
- DefaultProxySection.cs
- SqlRowUpdatingEvent.cs
- AssemblyName.cs
- DBSqlParserTable.cs
- ExternalException.cs
- AssemblyCollection.cs
- DesignerTransactionCloseEvent.cs
- Label.cs
- ZoneLinkButton.cs
- XomlCompiler.cs
- HtmlInputRadioButton.cs
- SerializationAttributes.cs
- EventDescriptor.cs
- EmptyCollection.cs
- SubpageParaClient.cs
- HtmlTableRow.cs
- hresults.cs
- MediaPlayerState.cs
- TextTreeDeleteContentUndoUnit.cs
- DesignerRegionMouseEventArgs.cs
- formatter.cs
- DataSourceView.cs
- ListView.cs
- DrawingImage.cs
- ScrollBarRenderer.cs
- MediaEntryAttribute.cs
- ContextBase.cs
- DataGridRowHeader.cs
- ScriptControlManager.cs
- ScrollItemPatternIdentifiers.cs
- AuthStoreRoleProvider.cs
- LineServicesRun.cs
- Bitmap.cs
- Decoder.cs
- FillErrorEventArgs.cs
- HierarchicalDataSourceIDConverter.cs
- BridgeDataReader.cs
- PropertiesTab.cs
- CodeCatchClauseCollection.cs
- OAVariantLib.cs
- UpdateExpressionVisitor.cs
- CodeNamespaceCollection.cs
- ArraySortHelper.cs
- MdiWindowListStrip.cs
- SolidBrush.cs
- PathData.cs
- InheritedPropertyChangedEventArgs.cs
- SessionPageStateSection.cs
- OdbcConnectionHandle.cs
- SuppressIldasmAttribute.cs
- DataGridDesigner.cs
- X509ImageLogo.cs
- FactoryMaker.cs
- StringStorage.cs
- OrderedDictionaryStateHelper.cs
- BitmapEffectDrawing.cs
- RotateTransform3D.cs
- MappedMetaModel.cs
- GorillaCodec.cs
- UICuesEvent.cs
- _PooledStream.cs
- UTF8Encoding.cs
- ServiceOperation.cs
- HttpWebRequest.cs
- IisTraceListener.cs
- ImageKeyConverter.cs
- TimelineClockCollection.cs
- InvokeHandlers.cs
- SponsorHelper.cs
- CodeStatement.cs
- StylusPlugInCollection.cs
- DetailsViewRow.cs
- AlgoModule.cs
- RestClientProxyHandler.cs
- TargetParameterCountException.cs
- TimeZone.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- ResXFileRef.cs
- SchemaTableOptionalColumn.cs
- ToolboxItemWrapper.cs
- WebPartsPersonalization.cs
- Proxy.cs
- Italic.cs
- ProgressBar.cs
- KerberosRequestorSecurityToken.cs
- QilInvokeLateBound.cs
- XamlSerializerUtil.cs
- StatusBarPanel.cs
- Span.cs
- ping.cs
- XmlSchemaObjectTable.cs
- SecurityContext.cs
- Base64Decoder.cs
- IgnoreFlushAndCloseStream.cs
- SQLString.cs
- SecurityVersion.cs
- StreamReader.cs
- RelationshipEndMember.cs