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
- RegexStringValidatorAttribute.cs
- AdapterUtil.cs
- WebPartMenuStyle.cs
- ScriptingWebServicesSectionGroup.cs
- WebServiceErrorEvent.cs
- Selection.cs
- PropertyChangedEventArgs.cs
- __TransparentProxy.cs
- invalidudtexception.cs
- LineVisual.cs
- ServicePointManagerElement.cs
- ParamArrayAttribute.cs
- KnownBoxes.cs
- RemotingException.cs
- GCHandleCookieTable.cs
- Int64AnimationBase.cs
- WsdlBuildProvider.cs
- DataBindingCollection.cs
- SolidBrush.cs
- HttpProfileBase.cs
- TiffBitmapDecoder.cs
- BaseDataListPage.cs
- StateRuntime.cs
- SqlMethodTransformer.cs
- WindowsComboBox.cs
- ButtonField.cs
- HttpDictionary.cs
- EditModeSwitchButton.cs
- EventHandlerList.cs
- Int16Storage.cs
- HeaderUtility.cs
- UserInitiatedNavigationPermission.cs
- InkPresenter.cs
- EventWaitHandleSecurity.cs
- UInt16Converter.cs
- ItemCollection.cs
- XmlIncludeAttribute.cs
- Oci.cs
- FormViewUpdateEventArgs.cs
- DbProviderFactories.cs
- Panel.cs
- ProbeDuplex11AsyncResult.cs
- keycontainerpermission.cs
- WebPartVerbsEventArgs.cs
- XPathNodeIterator.cs
- WSFederationHttpSecurity.cs
- ReferenceService.cs
- IdentifierCollection.cs
- ContextQuery.cs
- MessageQueueKey.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- ToolStripCodeDomSerializer.cs
- CssStyleCollection.cs
- PositiveTimeSpanValidator.cs
- FormsAuthenticationCredentials.cs
- AppDomainManager.cs
- SendMailErrorEventArgs.cs
- SortedList.cs
- ConfigurationStrings.cs
- documentsequencetextcontainer.cs
- CommandTreeTypeHelper.cs
- UnconditionalPolicy.cs
- SiteMapNodeCollection.cs
- PrintingPermissionAttribute.cs
- SqlDataSourceEnumerator.cs
- ResizeBehavior.cs
- ExtenderControl.cs
- RealProxy.cs
- SchemaManager.cs
- Font.cs
- FontSizeConverter.cs
- KnownBoxes.cs
- MaterialGroup.cs
- clipboard.cs
- SQLChars.cs
- SelectManyQueryOperator.cs
- PointIndependentAnimationStorage.cs
- HttpListenerContext.cs
- LockRecursionException.cs
- BounceEase.cs
- SchemaCollectionCompiler.cs
- Config.cs
- GetPageNumberCompletedEventArgs.cs
- ControlBindingsCollection.cs
- HwndSource.cs
- AnimationStorage.cs
- XmlPropertyBag.cs
- DataGridViewCellConverter.cs
- DataGridRow.cs
- ColorBuilder.cs
- PageRouteHandler.cs
- DynamicResourceExtensionConverter.cs
- ConsumerConnectionPointCollection.cs
- Point3DAnimation.cs
- SimpleType.cs
- DesignTimeHTMLTextWriter.cs
- InputLanguage.cs
- Effect.cs
- RuleDefinitions.cs
- XmlAnyElementAttribute.cs