Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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 : [....] - Created it.
// 2003/07/28 : [....] - 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
- Frame.cs
- InputBindingCollection.cs
- Size3D.cs
- DescendentsWalkerBase.cs
- TreePrinter.cs
- ListView.cs
- TableLayoutPanelCellPosition.cs
- SoundPlayer.cs
- DrawingCollection.cs
- FigureParagraph.cs
- TreeViewHitTestInfo.cs
- Int64AnimationUsingKeyFrames.cs
- WmlObjectListAdapter.cs
- HTMLTagNameToTypeMapper.cs
- RequiredFieldValidator.cs
- ItemMap.cs
- DesignTimeSiteMapProvider.cs
- FormattedText.cs
- shaper.cs
- Permission.cs
- GridViewDeletedEventArgs.cs
- DesignerRegion.cs
- MethodToken.cs
- CustomCategoryAttribute.cs
- ClonableStack.cs
- CompilationUnit.cs
- PropertyItem.cs
- securitycriticaldataformultiplegetandset.cs
- MD5CryptoServiceProvider.cs
- ParsedAttributeCollection.cs
- ConfigXmlWhitespace.cs
- LinearGradientBrush.cs
- TableParaClient.cs
- Single.cs
- SpellerError.cs
- DocumentOrderQuery.cs
- TraceProvider.cs
- ReliableDuplexSessionChannel.cs
- DataGridParentRows.cs
- DependencyProperty.cs
- EventItfInfo.cs
- ExpressionNode.cs
- SchemaMapping.cs
- CharEnumerator.cs
- AlignmentXValidation.cs
- PreProcessInputEventArgs.cs
- Single.cs
- ReflectionPermission.cs
- Metadata.cs
- ISSmlParser.cs
- HttpWrapper.cs
- MobileControlPersister.cs
- WbemProvider.cs
- ExpressionBuilder.cs
- ToolStripDropDownClosingEventArgs.cs
- DataSysAttribute.cs
- SwitchExpression.cs
- WebPartDescription.cs
- CombinedGeometry.cs
- Parser.cs
- ActivityDefaults.cs
- EntityViewContainer.cs
- DrawingCollection.cs
- TemplateFactory.cs
- DeviceSpecific.cs
- SafeSerializationManager.cs
- SnapLine.cs
- DeclaredTypeElementCollection.cs
- FileCodeGroup.cs
- _SafeNetHandles.cs
- XmlSiteMapProvider.cs
- CodeVariableReferenceExpression.cs
- StructuredType.cs
- PaintValueEventArgs.cs
- PrefixQName.cs
- StaticSiteMapProvider.cs
- ExceptionList.cs
- LinqMaximalSubtreeNominator.cs
- CheckBoxDesigner.cs
- XmlSerializationReader.cs
- COM2TypeInfoProcessor.cs
- KerberosTicketHashIdentifierClause.cs
- BasePattern.cs
- SplitterCancelEvent.cs
- BaseValidator.cs
- ButtonBaseAdapter.cs
- RankException.cs
- WebPartChrome.cs
- DbProviderServices.cs
- ResXResourceReader.cs
- DesignerActionPanel.cs
- AutomationInteropProvider.cs
- DrawingImage.cs
- _SSPIWrapper.cs
- MsmqIntegrationInputMessage.cs
- COM2ICategorizePropertiesHandler.cs
- ProcessThreadCollection.cs
- SqlInternalConnectionSmi.cs
- ZipIORawDataFileBlock.cs
- XsdCachingReader.cs