Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media / ImageDrawing.cs / 1 / ImageDrawing.cs
//---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Description: ImageDrawing represents a drawing operation that renders // an image into a destination rectangle. // // History: // // 2004/11/17 : [....] - Created it. // //--------------------------------------------------------------------------- using System.Diagnostics; using System.Windows.Media.Imaging; using MS.Internal; namespace System.Windows.Media { ////// ImageDrawing represents a drawing operation that renders an image into /// a destination rectangle /// public sealed partial class ImageDrawing : Drawing { #region Constructors ////// Default ImageDrawing constructor. /// Constructs an object with all properties set to their default values /// public ImageDrawing() { } ////// Two-argument ImageDrawing constructor. /// Constructs an object with the ImageSource and Rect properties /// set to the value of their respective arguments. /// public ImageDrawing(ImageSource imageSource, Rect rect) { ImageSource = imageSource; Rect = rect; } #endregion #region Internal methods ////// Calls methods on the DrawingContext that are equivalent to the /// Drawing with the Drawing's current value. /// internal override void WalkCurrentValue(DrawingContextWalker ctx) { // We avoid unneccessary ShouldStopWalking checks based on assumptions // about when ShouldStopWalking is set. Guard that assumption with an // assertion. See DrawingGroup.WalkCurrentValue comment for more details. ctx.DrawImage( ImageSource, Rect ); } ////// Image drawings require realization updates if the image source is a DrawingImage. /// internal override void PrecomputeCore() { ImageSource source = ImageSource; if (source != null) { source.Precompute(); RequiresRealizationUpdates = source.RequiresRealizationUpdates; } else { RequiresRealizationUpdates = false; } } ////// Pushes realization updates into DrawingImage ImageSources. /// internal override void UpdateRealizations(RealizationContext realizationContext) { if (RequiresRealizationUpdates) { ImageSource imageSource = ImageSource; Debug.Assert(imageSource != null, "Otherwise RequiresRealizationUpdates would be false."); Rect rectangle = Rect; Size imageSize = imageSource.Size; if (!DoubleUtil.AreClose(imageSize.Width, 0) && !DoubleUtil.AreClose(imageSize.Height, 0)) { Matrix scale = Matrix.CreateScaling( rectangle.Width / imageSize.Width, rectangle.Height / imageSize.Height); realizationContext.TransformStack.Push(ref scale, true); imageSource.UpdateRealizations(realizationContext); realizationContext.TransformStack.Pop(); } } } #endregion Internal methods } } // 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
- PixelFormats.cs
- Instrumentation.cs
- OptimalTextSource.cs
- NotifyInputEventArgs.cs
- PrintController.cs
- BuilderInfo.cs
- TimerElapsedEvenArgs.cs
- PathGeometry.cs
- HttpUnhandledOperationInvoker.cs
- MailMessageEventArgs.cs
- LinkClickEvent.cs
- _SSPIWrapper.cs
- CfgParser.cs
- ListViewGroupConverter.cs
- HandleCollector.cs
- DeviceContext.cs
- ParameterCollectionEditor.cs
- DesignerPerfEventProvider.cs
- ButtonField.cs
- ThrowOnMultipleAssignment.cs
- RequestCacheEntry.cs
- TrimSurroundingWhitespaceAttribute.cs
- HttpProtocolReflector.cs
- MetadataCollection.cs
- ClosableStream.cs
- WindowsStatic.cs
- CursorConverter.cs
- BitmapEffectInput.cs
- Schema.cs
- Error.cs
- DbConnectionStringCommon.cs
- MappableObjectManager.cs
- BindingFormattingDialog.cs
- WebException.cs
- Roles.cs
- Material.cs
- ErrorRuntimeConfig.cs
- SecureConversationServiceCredential.cs
- CriticalFinalizerObject.cs
- InfoCardTraceRecord.cs
- COM2IDispatchConverter.cs
- InfocardExtendedInformationEntry.cs
- SystemDiagnosticsSection.cs
- EventWaitHandleSecurity.cs
- RtType.cs
- VisualStyleTypesAndProperties.cs
- FreezableOperations.cs
- AttachedPropertyMethodSelector.cs
- PageCodeDomTreeGenerator.cs
- ClientScriptManagerWrapper.cs
- QilChoice.cs
- Ref.cs
- CounterCreationData.cs
- _SpnDictionary.cs
- CuspData.cs
- InputProviderSite.cs
- InputQueueChannel.cs
- UpdatableGenericsFeature.cs
- SerializationInfoEnumerator.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- SortQueryOperator.cs
- ViewStateChangedEventArgs.cs
- _ListenerResponseStream.cs
- ContentTextAutomationPeer.cs
- BatchParser.cs
- ParamArrayAttribute.cs
- SystemException.cs
- CreatingCookieEventArgs.cs
- DataBinding.cs
- TimeSpanMinutesConverter.cs
- SR.cs
- DriveNotFoundException.cs
- WebDescriptionAttribute.cs
- KeyConverter.cs
- EntityDescriptor.cs
- GridViewAutoFormat.cs
- SoapRpcMethodAttribute.cs
- XmlSchemaImporter.cs
- XmlEncoding.cs
- SimpleHandlerFactory.cs
- InkCanvasAutomationPeer.cs
- XmlSerializerAssemblyAttribute.cs
- RoutedUICommand.cs
- SHA384.cs
- HostVisual.cs
- DeadCharTextComposition.cs
- NameHandler.cs
- WebPartPersonalization.cs
- IIS7WorkerRequest.cs
- ZipIOModeEnforcingStream.cs
- MultiByteCodec.cs
- HelpKeywordAttribute.cs
- SQLInt32Storage.cs
- ConstrainedGroup.cs
- AssemblyCache.cs
- SizeAnimationClockResource.cs
- CommandCollectionEditor.cs
- ContextMenuService.cs
- PermissionSetEnumerator.cs
- BevelBitmapEffect.cs