Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / ImageSource.cs / 1305600 / 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 ////// 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 ////// 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
- wmiutil.cs
- XpsFontSerializationService.cs
- shaperfactoryquerycachekey.cs
- DescriptionCreator.cs
- ValidationRuleCollection.cs
- ReaderWriterLock.cs
- HostedBindingBehavior.cs
- SqlLiftWhereClauses.cs
- TextProperties.cs
- DataGridViewCellStyleBuilderDialog.cs
- SizeIndependentAnimationStorage.cs
- EnumerableRowCollectionExtensions.cs
- FileStream.cs
- DataObjectEventArgs.cs
- PageCodeDomTreeGenerator.cs
- XPathCompileException.cs
- ContextMarshalException.cs
- IIS7UserPrincipal.cs
- ConnectionInterfaceCollection.cs
- SqlProfileProvider.cs
- Literal.cs
- __Filters.cs
- AssociationEndMember.cs
- EntityStoreSchemaGenerator.cs
- JournalEntry.cs
- HandleRef.cs
- HttpListenerTimeoutManager.cs
- DataGridViewSortCompareEventArgs.cs
- ImpersonateTokenRef.cs
- PopupControlService.cs
- StatusBarItem.cs
- MultipleCopiesCollection.cs
- FunctionImportElement.cs
- StrongNameKeyPair.cs
- ScrollViewer.cs
- DbInsertCommandTree.cs
- TreeNode.cs
- Stylesheet.cs
- CommonDialog.cs
- ProcessThread.cs
- XmlName.cs
- ColorIndependentAnimationStorage.cs
- HtmlShimManager.cs
- WindowsToolbar.cs
- PeerCollaborationPermission.cs
- PolicyException.cs
- HashFinalRequest.cs
- remotingproxy.cs
- HyperLinkDataBindingHandler.cs
- Configuration.cs
- PropertyMetadata.cs
- PreloadedPackages.cs
- DecimalConverter.cs
- ComplexPropertyEntry.cs
- DictionaryMarkupSerializer.cs
- RegistryKey.cs
- NestedContainer.cs
- DataGridViewBand.cs
- RemoteCryptoDecryptRequest.cs
- TypographyProperties.cs
- Keyboard.cs
- EpmCustomContentDeSerializer.cs
- FormatException.cs
- RegularExpressionValidator.cs
- _WinHttpWebProxyDataBuilder.cs
- FamilyMap.cs
- StaticResourceExtension.cs
- SettingsAttributeDictionary.cs
- RichTextBox.cs
- PersianCalendar.cs
- XmlUrlResolver.cs
- WebConfigurationHostFileChange.cs
- SetIterators.cs
- VisualTreeUtils.cs
- XmlObjectSerializerReadContextComplex.cs
- SendKeys.cs
- TagMapCollection.cs
- WeakReadOnlyCollection.cs
- BatchStream.cs
- FieldNameLookup.cs
- NativeMethods.cs
- HyperlinkAutomationPeer.cs
- WebPartConnectionCollection.cs
- DataGridViewRowCollection.cs
- NumericUpDown.cs
- LambdaValue.cs
- SplitterPanel.cs
- WebUtil.cs
- JsonWriter.cs
- AssemblyResourceLoader.cs
- IntegrationExceptionEventArgs.cs
- EmbossBitmapEffect.cs
- EmptyEnumerator.cs
- WizardStepBase.cs
- ClientCultureInfo.cs
- ClientConfigPaths.cs
- RoutedEventArgs.cs
- TreeViewImageIndexConverter.cs
- HtmlTable.cs
- GroupLabel.cs