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
- DbgUtil.cs
- SelectionChangedEventArgs.cs
- ImageMetadata.cs
- PatternMatcher.cs
- Int16AnimationUsingKeyFrames.cs
- SingleAnimation.cs
- PassportAuthenticationEventArgs.cs
- MetadataCache.cs
- ToolStripItemRenderEventArgs.cs
- Transform3D.cs
- WebServiceTypeData.cs
- CodeTypeReference.cs
- BinaryHeap.cs
- PerformanceCountersElement.cs
- RSAProtectedConfigurationProvider.cs
- LicenseContext.cs
- ParallelTimeline.cs
- HiddenFieldPageStatePersister.cs
- MethodToken.cs
- EdgeProfileValidation.cs
- PropertyPathConverter.cs
- DelegateArgumentReference.cs
- CodeExpressionStatement.cs
- CriticalHandle.cs
- DelegateSerializationHolder.cs
- PackageProperties.cs
- Dictionary.cs
- WindowsIdentity.cs
- WebPartVerbCollection.cs
- GatewayDefinition.cs
- TransformerTypeCollection.cs
- DateTimeAutomationPeer.cs
- XmlSchemaSimpleTypeList.cs
- XMLSchema.cs
- DataTableMappingCollection.cs
- CollectionViewGroupInternal.cs
- RewritingValidator.cs
- Pen.cs
- CursorInteropHelper.cs
- TextModifier.cs
- RichTextBox.cs
- DockPattern.cs
- DoubleAnimationBase.cs
- NamedElement.cs
- ExceptionValidationRule.cs
- ReceiveActivityValidator.cs
- SqlCacheDependencyDatabase.cs
- ManagedIStream.cs
- XmlSerializerFactory.cs
- IndentTextWriter.cs
- MorphHelper.cs
- TreeWalkHelper.cs
- ItemChangedEventArgs.cs
- RawStylusInput.cs
- webeventbuffer.cs
- SrgsDocument.cs
- TdsValueSetter.cs
- DataRowChangeEvent.cs
- HandlerMappingMemo.cs
- CheckPair.cs
- Form.cs
- CompositeDataBoundControl.cs
- EntityDataSource.cs
- ActiveXHelper.cs
- LinkedResource.cs
- DBCommand.cs
- XmlDataSourceView.cs
- DataStreamFromComStream.cs
- ComboBox.cs
- sqlmetadatafactory.cs
- ThicknessKeyFrameCollection.cs
- SqlBulkCopy.cs
- AnnotationComponentManager.cs
- RoutedEvent.cs
- EncoderFallback.cs
- DragStartedEventArgs.cs
- NaturalLanguageHyphenator.cs
- SecureConversationServiceCredential.cs
- Assembly.cs
- FontEmbeddingManager.cs
- SupportedAddressingMode.cs
- DocobjHost.cs
- ETagAttribute.cs
- MimeAnyImporter.cs
- SystemIcmpV4Statistics.cs
- AutomationPatternInfo.cs
- GeneratedCodeAttribute.cs
- FontEmbeddingManager.cs
- CellParaClient.cs
- SslStreamSecurityElement.cs
- ConfigurationValue.cs
- Compiler.cs
- PropertyValue.cs
- ElementProxy.cs
- errorpatternmatcher.cs
- IFlowDocumentViewer.cs
- PostBackOptions.cs
- FontFamilyValueSerializer.cs
- BezierSegment.cs
- DataGridViewComboBoxColumn.cs