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
- DiscriminatorMap.cs
- ProtocolViolationException.cs
- ChtmlTextWriter.cs
- ManagementOptions.cs
- XomlCompilerHelpers.cs
- ColumnMapVisitor.cs
- infer.cs
- HttpWebResponse.cs
- BitmapCache.cs
- XmlnsPrefixAttribute.cs
- validationstate.cs
- OverflowException.cs
- StrokeSerializer.cs
- DialogResultConverter.cs
- TypeConverterAttribute.cs
- Stream.cs
- ToolStripRenderEventArgs.cs
- ToolStripDesigner.cs
- CodeIdentifiers.cs
- DataPagerFieldCommandEventArgs.cs
- HttpAsyncResult.cs
- CollectionTraceRecord.cs
- ResXFileRef.cs
- DataServiceRequest.cs
- TypeLoadException.cs
- LayoutSettings.cs
- ExecutionEngineException.cs
- SerialPinChanges.cs
- EventRecord.cs
- TagMapCollection.cs
- MemberProjectedSlot.cs
- DataGridViewSortCompareEventArgs.cs
- SymbolType.cs
- Formatter.cs
- TextCharacters.cs
- ExclusiveCanonicalizationTransform.cs
- SafeNativeMethods.cs
- GradientStopCollection.cs
- BindStream.cs
- SqlHelper.cs
- COM2IProvidePropertyBuilderHandler.cs
- CollectionConverter.cs
- OutputScope.cs
- ConfigurationValidatorAttribute.cs
- XmlDocumentFragment.cs
- XmlRawWriter.cs
- ControlParameter.cs
- DiagnosticTraceSource.cs
- ComEventsSink.cs
- Freezable.cs
- MemberPath.cs
- IOException.cs
- CodeDomConfigurationHandler.cs
- SchemaEntity.cs
- PeerResolverSettings.cs
- ErrorHandler.cs
- Panel.cs
- TextEndOfParagraph.cs
- GroupItemAutomationPeer.cs
- BinaryOperationBinder.cs
- PrinterSettings.cs
- DataGridItemCollection.cs
- AttachmentService.cs
- HttpException.cs
- ReadOnlyDictionary.cs
- AppDomainManager.cs
- ReferentialConstraint.cs
- TraceListeners.cs
- ManagementQuery.cs
- ModelFactory.cs
- TreeViewImageGenerator.cs
- ExtensionQuery.cs
- SoapCodeExporter.cs
- MultipleViewPatternIdentifiers.cs
- InteropDesigner.xaml.cs
- ExceptionUtility.cs
- NamespaceEmitter.cs
- DesignerView.Commands.cs
- StreamGeometryContext.cs
- TypeDefinition.cs
- CompiledQuery.cs
- EdgeModeValidation.cs
- ItemList.cs
- relpropertyhelper.cs
- StringValueSerializer.cs
- EditorZone.cs
- SimpleHandlerBuildProvider.cs
- RoutedEventValueSerializer.cs
- XPathPatternBuilder.cs
- StaticContext.cs
- SerializationTrace.cs
- ComboBox.cs
- HttpCookieCollection.cs
- XhtmlBasicTextViewAdapter.cs
- ApplicationFileCodeDomTreeGenerator.cs
- Clipboard.cs
- XmlCollation.cs
- DispatcherObject.cs
- HttpRequest.cs
- DispatchChannelSink.cs