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
- PasswordBox.cs
- InputLanguage.cs
- TreeBuilderXamlTranslator.cs
- ValidationRuleCollection.cs
- ForceCopyBuildProvider.cs
- AuthenticationSection.cs
- PieceDirectory.cs
- CalendarDay.cs
- SortDescriptionCollection.cs
- XamlTypeMapperSchemaContext.cs
- DataGridViewRowPostPaintEventArgs.cs
- AttributeSetAction.cs
- SiteMap.cs
- DataBinding.cs
- SystemWebExtensionsSectionGroup.cs
- GenericIdentity.cs
- CryptoSession.cs
- NonBatchDirectoryCompiler.cs
- ProvideValueServiceProvider.cs
- UrlMappingCollection.cs
- SchemaObjectWriter.cs
- SqlDataSourceSelectingEventArgs.cs
- LineBreakRecord.cs
- DatePicker.cs
- TagPrefixAttribute.cs
- ValuePattern.cs
- CollectionType.cs
- GlobalEventManager.cs
- HttpCapabilitiesBase.cs
- SelectingProviderEventArgs.cs
- ToolStripDropDownClosedEventArgs.cs
- PointAnimationBase.cs
- ToolStripSystemRenderer.cs
- Sorting.cs
- DataGridSortingEventArgs.cs
- ContainsRowNumberChecker.cs
- AppLevelCompilationSectionCache.cs
- XmlTextReader.cs
- MimeBasePart.cs
- CheckBoxField.cs
- remotingproxy.cs
- SqlBuffer.cs
- HostDesigntimeLicenseContext.cs
- PowerModeChangedEventArgs.cs
- DrawingGroup.cs
- BamlCollectionHolder.cs
- EventArgs.cs
- SmiEventSink_DeferedProcessing.cs
- DeflateStream.cs
- MouseEventArgs.cs
- ToolStripItemEventArgs.cs
- ExpressionBinding.cs
- ObjectSet.cs
- FigureParaClient.cs
- HttpServerUtilityBase.cs
- SerializerWriterEventHandlers.cs
- ComboBoxRenderer.cs
- PageBuildProvider.cs
- WebPartsSection.cs
- SourceFileInfo.cs
- GridViewUpdatedEventArgs.cs
- CustomAssemblyResolver.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- ResXBuildProvider.cs
- Blend.cs
- DataGridCaption.cs
- _ListenerResponseStream.cs
- HatchBrush.cs
- TypeExtensions.cs
- Permission.cs
- FixedHighlight.cs
- SecurityContextSecurityTokenAuthenticator.cs
- UInt64Storage.cs
- DrawingBrush.cs
- OneWayBindingElementImporter.cs
- GraphicsContext.cs
- DbConnectionHelper.cs
- Queue.cs
- MsmqHostedTransportManager.cs
- DrawingGroup.cs
- RoleGroup.cs
- WindowsIdentity.cs
- XmlConverter.cs
- HtmlFormParameterWriter.cs
- ChannelFactory.cs
- NativeObjectSecurity.cs
- IntSecurity.cs
- HMACSHA384.cs
- ChannelSinkStacks.cs
- RNGCryptoServiceProvider.cs
- FormatterServices.cs
- SqlCommandSet.cs
- FileFormatException.cs
- IpcChannel.cs
- DataReceivedEventArgs.cs
- WebPartMovingEventArgs.cs
- TextElementEnumerator.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- MultiPageTextView.cs
- BamlRecords.cs