Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media / DrawingImage.cs / 1 / DrawingImage.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: DrawingImage class
// An ImageSource with a Drawing for content
//
//
// History:
// 05/26/2005 : [....] - Created it
//
//---------------------------------------------------------------------------
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;
using System.Windows.Media.Imaging;
namespace System.Windows.Media
{
///
/// The class definition for DrawingImage
///
public sealed partial class DrawingImage : ImageSource
{
///
/// Default DrawingImage ctor
///
public DrawingImage()
{
}
///
/// DrawingImage ctor that takes a Drawing
///
/// The content of the DrawingImage
public DrawingImage(Drawing drawing)
{
Drawing = drawing;
}
///
/// Width of the DrawingImage
///
public override double Width
{
get
{
ReadPreamble();
return Size.Width;
}
}
///
/// Height of the DrawingImage
///
public override double Height
{
get
{
ReadPreamble();
return Size.Height;
}
}
///
/// Get the Metadata of the DrawingImage
///
public override ImageMetadata Metadata
{
get
{
ReadPreamble();
// DrawingImage does not have any metadata currently defined.
return null;
}
}
///
/// Size for the DrawingImage
///
internal override Size Size
{
get
{
Drawing drawing = Drawing;
if (drawing != null)
{
Size size = drawing.GetBounds().Size;
if (!size.IsEmpty)
{
return size;
}
else
{
return new Size();
}
}
else
{
return new Size();
}
}
}
///
/// Precompute is called during the frame preparation phase. Derived classes
/// typically check if the brush requires realizations during this phase.
///
internal override void Precompute()
{
Drawing drawing = Drawing;
_requiresRealizationUpdates = false;
if (drawing != null)
{
drawing.PrecomputeCore();
_requiresRealizationUpdates = drawing.RequiresRealizationUpdates;
}
}
///
/// Checks if realization updates are requried for this resource.
///
internal override bool RequiresRealizationUpdates { get { return _requiresRealizationUpdates; } }
///
/// Derived classes must override this method and update realizations on dependent
/// resources if required.
///
internal override void UpdateRealizations(RealizationContext ctx)
{
if (_requiresRealizationUpdates)
{
Drawing drawing = Drawing;
Debug.Assert(drawing != null); // Otherwise _requiresRealizationUpdates would be false.
drawing.UpdateRealizations(ctx);
}
}
///
/// This node can introduce graphness
///
internal override bool CanIntroduceGraphness()
{
return true;
}
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
- MatrixAnimationBase.cs
- ThemeDictionaryExtension.cs
- CodeLinePragma.cs
- AssemblyInfo.cs
- CalendarData.cs
- NonceToken.cs
- AxHost.cs
- DataProtectionSecurityStateEncoder.cs
- HierarchicalDataBoundControlAdapter.cs
- WebBrowser.cs
- ConfigurationSettings.cs
- ScrollItemPatternIdentifiers.cs
- LinearKeyFrames.cs
- Int32Rect.cs
- ContainerSelectorActiveEvent.cs
- Control.cs
- TextBoxBase.cs
- Msec.cs
- NullNotAllowedCollection.cs
- Compensation.cs
- ResourceCategoryAttribute.cs
- QueryContinueDragEvent.cs
- WebDisplayNameAttribute.cs
- DataListGeneralPage.cs
- DataGridrowEditEndingEventArgs.cs
- RootBrowserWindowAutomationPeer.cs
- DrawingContextWalker.cs
- RegexReplacement.cs
- IBuiltInEvidence.cs
- DocumentScope.cs
- Triangle.cs
- ISSmlParser.cs
- XPathNodeIterator.cs
- Transactions.cs
- ObjectSpanRewriter.cs
- Stroke2.cs
- Task.cs
- TypeDescriptionProviderAttribute.cs
- CaseStatementSlot.cs
- GridItemCollection.cs
- SpoolingTask.cs
- LogManagementAsyncResult.cs
- TableHeaderCell.cs
- TextRangeSerialization.cs
- VisualBrush.cs
- ContainsSearchOperator.cs
- PropertyInfoSet.cs
- ZipFileInfo.cs
- SystemFonts.cs
- MetadataSource.cs
- _ConnectStream.cs
- FlowDocument.cs
- XPathChildIterator.cs
- UICuesEvent.cs
- ColumnClickEvent.cs
- AlignmentYValidation.cs
- Int16KeyFrameCollection.cs
- CharAnimationUsingKeyFrames.cs
- Int64Converter.cs
- DataGridPagerStyle.cs
- UnsafeMethods.cs
- EntryIndex.cs
- mansign.cs
- ConfigXmlComment.cs
- SizeConverter.cs
- CqlBlock.cs
- PowerModeChangedEventArgs.cs
- Track.cs
- PEFileEvidenceFactory.cs
- AccessDataSource.cs
- XmlSubtreeReader.cs
- Message.cs
- StringComparer.cs
- TrailingSpaceComparer.cs
- TreeNodeBindingDepthConverter.cs
- BamlWriter.cs
- Translator.cs
- TimeIntervalCollection.cs
- InvalidCastException.cs
- BaseValidator.cs
- bidPrivateBase.cs
- PropertyToken.cs
- Ipv6Element.cs
- FloaterParagraph.cs
- LicenseContext.cs
- ScaleTransform.cs
- IUnknownConstantAttribute.cs
- Dictionary.cs
- PriorityBinding.cs
- EventMetadata.cs
- WeakReference.cs
- TreeIterator.cs
- WebHttpElement.cs
- BatchStream.cs
- ThrowOnMultipleAssignment.cs
- ComponentEditorPage.cs
- SerializerProvider.cs
- PartitionedStreamMerger.cs
- SchemaCollectionPreprocessor.cs
- OleDbInfoMessageEvent.cs