Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / Media / ImageSource.cs / 2 / 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
- TextPointerBase.cs
- PageTheme.cs
- DataServiceQueryContinuation.cs
- HelpExampleGenerator.cs
- XhtmlBasicLinkAdapter.cs
- PingOptions.cs
- DrawingServices.cs
- SystemIcmpV6Statistics.cs
- FormCollection.cs
- XmlFormatExtensionPointAttribute.cs
- NullableConverter.cs
- XhtmlBasicPageAdapter.cs
- BevelBitmapEffect.cs
- Publisher.cs
- DbDataReader.cs
- Compiler.cs
- FieldCollectionEditor.cs
- HelpEvent.cs
- CryptoApi.cs
- RegionIterator.cs
- FontFamilyValueSerializer.cs
- externdll.cs
- XmlSchemaAnyAttribute.cs
- HtmlShim.cs
- InputReferenceExpression.cs
- XsltQilFactory.cs
- XmlIgnoreAttribute.cs
- SerializationInfoEnumerator.cs
- XmlSchemaDocumentation.cs
- RegisteredDisposeScript.cs
- TextClipboardData.cs
- SpeechRecognitionEngine.cs
- _OverlappedAsyncResult.cs
- AdjustableArrowCap.cs
- NameValuePermission.cs
- sqlser.cs
- PropertyGeneratedEventArgs.cs
- ClientSettings.cs
- BrowserCapabilitiesFactory.cs
- DesignerView.cs
- GlyphShapingProperties.cs
- __Filters.cs
- StylusButtonCollection.cs
- NetworkStream.cs
- PropertyDescriptorCollection.cs
- PersonalizationProviderCollection.cs
- FatalException.cs
- AssemblyUtil.cs
- KnownTypesHelper.cs
- CustomAssemblyResolver.cs
- StatusBar.cs
- WorkItem.cs
- DynamicILGenerator.cs
- AsnEncodedData.cs
- StrongNamePublicKeyBlob.cs
- PageThemeBuildProvider.cs
- BamlLocalizationDictionary.cs
- ToolstripProfessionalRenderer.cs
- InvalidComObjectException.cs
- StatusBar.cs
- PrimarySelectionGlyph.cs
- CompositeKey.cs
- WebPartsPersonalizationAuthorization.cs
- StackSpiller.cs
- ISAPIApplicationHost.cs
- DesignOnlyAttribute.cs
- GacUtil.cs
- _BaseOverlappedAsyncResult.cs
- AttachedPropertyMethodSelector.cs
- NavigationFailedEventArgs.cs
- WebPartHelpVerb.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- PermissionSetEnumerator.cs
- TaskSchedulerException.cs
- MemberHolder.cs
- DirectoryInfo.cs
- WSDualHttpBinding.cs
- Form.cs
- WorkflowMarkupSerializationException.cs
- DataGridBoolColumn.cs
- ConfigurationManager.cs
- XmlByteStreamReader.cs
- CustomPopupPlacement.cs
- StylusSystemGestureEventArgs.cs
- ListControl.cs
- CommentAction.cs
- AutoResetEvent.cs
- DesignerTransactionCloseEvent.cs
- DataGridViewButtonColumn.cs
- Error.cs
- OSEnvironmentHelper.cs
- DataGridViewTextBoxColumn.cs
- ControlBuilder.cs
- SimpleLine.cs
- ParseChildrenAsPropertiesAttribute.cs
- AppDomain.cs
- SerializerDescriptor.cs
- TargetConverter.cs
- StylusPointProperties.cs
- DataGridViewTopRowAccessibleObject.cs