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
- ValidationException.cs
- UnionExpr.cs
- SizeAnimationUsingKeyFrames.cs
- InputManager.cs
- PartialCachingAttribute.cs
- DoubleAnimation.cs
- HitTestFilterBehavior.cs
- SchemaInfo.cs
- ExpressionsCollectionConverter.cs
- SynchronizedCollection.cs
- ProbeDuplexCD1AsyncResult.cs
- BevelBitmapEffect.cs
- AxisAngleRotation3D.cs
- BinaryObjectWriter.cs
- TypeExtensionConverter.cs
- Deflater.cs
- ChainOfDependencies.cs
- Vector3DConverter.cs
- ServiceCredentialsSecurityTokenManager.cs
- JoinCqlBlock.cs
- OleDbSchemaGuid.cs
- Internal.cs
- KerberosSecurityTokenParameters.cs
- DbProviderFactories.cs
- DataGridViewCellValidatingEventArgs.cs
- StreamUpdate.cs
- ActivitySurrogate.cs
- BrowsableAttribute.cs
- ProfileManager.cs
- DataSourceNameHandler.cs
- SortExpressionBuilder.cs
- FormatPage.cs
- ThicknessAnimation.cs
- AssociationTypeEmitter.cs
- MimeParameter.cs
- UniqueIdentifierService.cs
- ToolTip.cs
- EntitySet.cs
- Assembly.cs
- Int16AnimationUsingKeyFrames.cs
- WorkflowInlining.cs
- CodeRegionDirective.cs
- GridLengthConverter.cs
- XmlCodeExporter.cs
- PageBuildProvider.cs
- EdmEntityTypeAttribute.cs
- DispatchProxy.cs
- StopStoryboard.cs
- TextParentUndoUnit.cs
- BufferModeSettings.cs
- ClipboardProcessor.cs
- QilSortKey.cs
- RelatedCurrencyManager.cs
- _AutoWebProxyScriptEngine.cs
- StrokeSerializer.cs
- GridViewEditEventArgs.cs
- XhtmlStyleClass.cs
- PrivateFontCollection.cs
- WindowsTreeView.cs
- TextSpan.cs
- DtcInterfaces.cs
- InternalConfigSettingsFactory.cs
- HTMLTagNameToTypeMapper.cs
- Frame.cs
- SelectionItemPattern.cs
- DataFormats.cs
- XmlSchemas.cs
- wgx_sdk_version.cs
- DataSourceProvider.cs
- StringValidatorAttribute.cs
- PostBackOptions.cs
- HostedAspNetEnvironment.cs
- Configuration.cs
- RadioButton.cs
- DBConnectionString.cs
- DynamicResourceExtension.cs
- UdpTransportSettingsElement.cs
- DoubleIndependentAnimationStorage.cs
- NamespaceDisplayAutomationPeer.cs
- exports.cs
- BinaryCommonClasses.cs
- PageBuildProvider.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- RichTextBoxContextMenu.cs
- ProgressBarHighlightConverter.cs
- NetworkInformationPermission.cs
- StaticFileHandler.cs
- DataKey.cs
- Main.cs
- XpsS0ValidatingLoader.cs
- HtmlTableCell.cs
- WebPartsSection.cs
- WebHeaderCollection.cs
- ScalarConstant.cs
- TransformedBitmap.cs
- Int32Rect.cs
- SolidColorBrush.cs
- InfoCardListRequest.cs
- ThicknessAnimationUsingKeyFrames.cs
- MemberHolder.cs