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
- RequestSecurityTokenResponse.cs
- Classification.cs
- RangeBaseAutomationPeer.cs
- FontDriver.cs
- PageAsyncTask.cs
- Cursors.cs
- SimpleHandlerFactory.cs
- MaterialCollection.cs
- ClientScriptManagerWrapper.cs
- MethodCallTranslator.cs
- MimeWriter.cs
- XmlFormatWriterGenerator.cs
- InvalidDataContractException.cs
- Button.cs
- ArraySubsetEnumerator.cs
- TaskFileService.cs
- Util.cs
- MatrixCamera.cs
- QilVisitor.cs
- RepeaterCommandEventArgs.cs
- TabItem.cs
- ApplicationInfo.cs
- InvalidCastException.cs
- AttributeInfo.cs
- Panel.cs
- WebConfigurationFileMap.cs
- basecomparevalidator.cs
- TransactionTraceIdentifier.cs
- InvokePatternIdentifiers.cs
- sqlmetadatafactory.cs
- AlgoModule.cs
- ObjectDataSourceView.cs
- MetadataArtifactLoader.cs
- ProxyDataContractResolver.cs
- PackWebResponse.cs
- CmsInterop.cs
- PathSegment.cs
- OracleParameterBinding.cs
- SymbolTable.cs
- __Filters.cs
- StructuralType.cs
- XpsFilter.cs
- ShaderEffect.cs
- DependencyPropertyConverter.cs
- DataGridHeaderBorder.cs
- FixedPageStructure.cs
- StateWorkerRequest.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- TableCellCollection.cs
- WebPartConnectVerb.cs
- DESCryptoServiceProvider.cs
- Wizard.cs
- UnsafeNetInfoNativeMethods.cs
- ExpressionBindingCollection.cs
- ThousandthOfEmRealDoubles.cs
- MtomMessageEncodingElement.cs
- MobileListItem.cs
- XpsFont.cs
- FilteredXmlReader.cs
- Int16.cs
- TiffBitmapEncoder.cs
- EndpointConfigContainer.cs
- MenuItemStyle.cs
- DataGridViewRowCollection.cs
- BrowserDefinition.cs
- RadioButtonAutomationPeer.cs
- TCPListener.cs
- SecurityManager.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- GeometryGroup.cs
- AngleUtil.cs
- XamlInterfaces.cs
- XmlSerializerVersionAttribute.cs
- SSmlParser.cs
- ContentPlaceHolder.cs
- StorageRoot.cs
- TreeNodeEventArgs.cs
- XmlnsCache.cs
- ObjectSecurity.cs
- TransformCollection.cs
- WebColorConverter.cs
- NameSpaceExtractor.cs
- MimeTypeMapper.cs
- SortedList.cs
- XmlSignatureProperties.cs
- SingleSelectRootGridEntry.cs
- Options.cs
- UnsafeCollabNativeMethods.cs
- GrammarBuilderBase.cs
- ExpressionBinding.cs
- PrintPreviewControl.cs
- AlignmentYValidation.cs
- WmpBitmapDecoder.cs
- DescriptionAttribute.cs
- TextServicesContext.cs
- ACE.cs
- XmlDataProvider.cs
- QilName.cs
- PageHandlerFactory.cs
- InputDevice.cs