Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / System / Windows / Media / ImageSource.cs / 1 / ImageSource.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, All Rights Reserved. // // File: ImageSource.cs // //----------------------------------------------------------------------------- using System; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using MS.Internal; using System.Diagnostics; using System.Windows.Media; using System.Globalization; using System.Security; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using System.Windows.Markup; using MS.Win32; namespace System.Windows.Media { #region ImageSource ////// Interface for Bitmap Sources, included decoders and effects /// [TypeConverter(typeof(System.Windows.Media.ImageSourceConverter))] [ValueSerializer(typeof(ImageSourceValueSerializer))] [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] public abstract partial class ImageSource : Animatable { #region Constructor ////// Don't allow 3rd party extensibility. /// internal ImageSource() { } #endregion Constructor ////// Get the width of the image in measure units (96ths of an inch). /// abstract public double Width { get; } ////// Get the height of the image in measure units (96ths of an inch). /// abstract public double Height { get; } ////// Get the metadata associated with this image source /// abstract public ImageMetadata Metadata { get; } ////// Get the Size associated with this image source /// internal virtual Size Size { get { return new Size(Width, Height); } } #region ToInstanceDescriptor ////// Can serialze "this" to a string /// internal virtual bool CanSerializeToString() { return false; } #endregion ////// Derived classes must override this method and update realizations on dependent /// resources if required. /// internal virtual void UpdateRealizations(RealizationContext ctx) { return; } ////// Converts pixels to DIPs in a way consistent with MIL. Protected here is okay /// because ImageSource isn't extensible by 3rd parties. /// protected static double PixelsToDIPs(double dpi, int pixels) { // Obtain the natural size in MIL Device Independant Pixels (DIPs, or 1/96") of the bitmap. // This is: (Bitmap Pixels) / (Bitmap DotsPerInch) * (DIPs per inch) float dpif = (float)dpi; // To be consistent with BitmapBrush // // Floating-point precision is used to maintain consistent // logic with BitmapBrush DPI scaling, which is implemented in // unmanaged code using single-precision math. Any changes to // this logic must also be updated in the UCE BitmapBrush // resource to maintain this consistency. if (dpif < 0.0F || FloatUtil.IsCloseToDivideByZero(96.0F, dpif)) { dpif = 96.0F; } return (double)(pixels * (96.0F / dpif)); } } #endregion // ImageSource } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, All Rights Reserved. // // File: ImageSource.cs // //----------------------------------------------------------------------------- using System; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using MS.Internal; using System.Diagnostics; using System.Windows.Media; using System.Globalization; using System.Security; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using System.Windows.Markup; using MS.Win32; namespace System.Windows.Media { #region ImageSource ////// Interface for Bitmap Sources, included decoders and effects /// [TypeConverter(typeof(System.Windows.Media.ImageSourceConverter))] [ValueSerializer(typeof(ImageSourceValueSerializer))] [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] public abstract partial class ImageSource : Animatable { #region Constructor ////// Don't allow 3rd party extensibility. /// internal ImageSource() { } #endregion Constructor ////// Get the width of the image in measure units (96ths of an inch). /// abstract public double Width { get; } ////// Get the height of the image in measure units (96ths of an inch). /// abstract public double Height { get; } ////// Get the metadata associated with this image source /// abstract public ImageMetadata Metadata { get; } ////// Get the Size associated with this image source /// internal virtual Size Size { get { return new Size(Width, Height); } } #region ToInstanceDescriptor ////// Can serialze "this" to a string /// internal virtual bool CanSerializeToString() { return false; } #endregion ////// Derived classes must override this method and update realizations on dependent /// resources if required. /// internal virtual void UpdateRealizations(RealizationContext ctx) { return; } ////// Converts pixels to DIPs in a way consistent with MIL. Protected here is okay /// because ImageSource isn't extensible by 3rd parties. /// protected static double PixelsToDIPs(double dpi, int pixels) { // Obtain the natural size in MIL Device Independant Pixels (DIPs, or 1/96") of the bitmap. // This is: (Bitmap Pixels) / (Bitmap DotsPerInch) * (DIPs per inch) float dpif = (float)dpi; // To be consistent with BitmapBrush // // Floating-point precision is used to maintain consistent // logic with BitmapBrush DPI scaling, which is implemented in // unmanaged code using single-precision math. Any changes to // this logic must also be updated in the UCE BitmapBrush // resource to maintain this consistency. if (dpif < 0.0F || FloatUtil.IsCloseToDivideByZero(96.0F, dpif)) { dpif = 96.0F; } return (double)(pixels * (96.0F / dpif)); } } #endregion // ImageSource } // 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
- InvariantComparer.cs
- rsa.cs
- WinFormsUtils.cs
- ICspAsymmetricAlgorithm.cs
- UserInitiatedNavigationPermission.cs
- ViewValidator.cs
- DataTableNameHandler.cs
- NamespaceInfo.cs
- InvokeMemberBinder.cs
- COM2Enum.cs
- BuildProvider.cs
- ObjectParameterCollection.cs
- CheckedListBox.cs
- TiffBitmapDecoder.cs
- BooleanSwitch.cs
- EncryptedReference.cs
- CommandHelper.cs
- ObjectDataSourceSelectingEventArgs.cs
- ManagementEventWatcher.cs
- Formatter.cs
- altserialization.cs
- SingleAnimationBase.cs
- RootNamespaceAttribute.cs
- CharEnumerator.cs
- Assert.cs
- _SslSessionsCache.cs
- MapPathBasedVirtualPathProvider.cs
- NameValuePermission.cs
- OwnerDrawPropertyBag.cs
- XmlAttributes.cs
- AdapterUtil.cs
- SchemaElement.cs
- SafeNativeMethods.cs
- RecipientInfo.cs
- Unit.cs
- MdImport.cs
- ContextStaticAttribute.cs
- DataBoundLiteralControl.cs
- FixedFlowMap.cs
- DataPagerField.cs
- WebPartTransformer.cs
- DictionarySectionHandler.cs
- ConfigPathUtility.cs
- mda.cs
- ByteAnimationUsingKeyFrames.cs
- UnmanagedMemoryStream.cs
- SubtreeProcessor.cs
- CompModSwitches.cs
- CqlParser.cs
- XmlNamespaceManager.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- TypeResolver.cs
- ComponentGuaranteesAttribute.cs
- ReliableMessagingHelpers.cs
- RegionData.cs
- IIS7WorkerRequest.cs
- DataTableMappingCollection.cs
- WindowsMenu.cs
- TypeUsage.cs
- FixedSOMLineRanges.cs
- AsymmetricKeyExchangeDeformatter.cs
- ReadingWritingEntityEventArgs.cs
- CheckoutException.cs
- IncrementalHitTester.cs
- DataGridViewColumnCollection.cs
- TextServicesManager.cs
- _Rfc2616CacheValidators.cs
- EntryPointNotFoundException.cs
- MaterialGroup.cs
- XmlSignatureProperties.cs
- RoleBoolean.cs
- LocalClientSecuritySettings.cs
- NameValueConfigurationElement.cs
- ping.cs
- CodeTypeDeclaration.cs
- LineGeometry.cs
- AttributeEmitter.cs
- OutputScopeManager.cs
- TempFiles.cs
- XmlMessageFormatter.cs
- ArgumentNullException.cs
- BaseCodeDomTreeGenerator.cs
- WindowsListBox.cs
- TdsParameterSetter.cs
- EventHandlerList.cs
- ToolStripPanelRow.cs
- TraceRecord.cs
- ResourceDisplayNameAttribute.cs
- ChtmlTextWriter.cs
- BindingValueChangedEventArgs.cs
- EntityDesignerDataSourceView.cs
- PixelFormat.cs
- StringOutput.cs
- ProtocolElementCollection.cs
- Transactions.cs
- JavascriptCallbackResponseProperty.cs
- DataColumnMappingCollection.cs
- DefaultBinder.cs
- ModelChangedEventArgsImpl.cs
- WebScriptEnablingBehavior.cs