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
- TdsParameterSetter.cs
- PrtTicket_Editor.cs
- MultiBinding.cs
- CodeEntryPointMethod.cs
- precedingsibling.cs
- CompModSwitches.cs
- DrawToolTipEventArgs.cs
- Visual3DCollection.cs
- VirtualDirectoryMapping.cs
- HyperLinkField.cs
- SafeNativeMethods.cs
- ToggleButtonAutomationPeer.cs
- StringExpressionSet.cs
- CanExecuteRoutedEventArgs.cs
- BitmapMetadata.cs
- DirectionalLight.cs
- serverconfig.cs
- BulletDecorator.cs
- Icon.cs
- WebControlsSection.cs
- DbProviderFactories.cs
- XmlSchemaCompilationSettings.cs
- SHA384CryptoServiceProvider.cs
- Module.cs
- TraceHandlerErrorFormatter.cs
- panel.cs
- FlowDocumentReader.cs
- EntryIndex.cs
- ClientTarget.cs
- NullableDoubleSumAggregationOperator.cs
- ToolStripControlHost.cs
- ImageAutomationPeer.cs
- _SecureChannel.cs
- SiteMapDataSourceView.cs
- SecUtil.cs
- Baml6ConstructorInfo.cs
- CaseStatementProjectedSlot.cs
- PackageDigitalSignatureManager.cs
- SafeHandles.cs
- DataGridViewUtilities.cs
- RequestDescription.cs
- SafeCryptoHandles.cs
- PerspectiveCamera.cs
- BinaryParser.cs
- EntityKey.cs
- RegexCapture.cs
- HttpListenerRequestTraceRecord.cs
- ApplicationGesture.cs
- FileCodeGroup.cs
- ClrProviderManifest.cs
- RequestCacheEntry.cs
- InternalControlCollection.cs
- ICspAsymmetricAlgorithm.cs
- GlyphShapingProperties.cs
- OSFeature.cs
- ReferenceEqualityComparer.cs
- HtmlControlDesigner.cs
- ExpressionLexer.cs
- FileLoadException.cs
- WriterOutput.cs
- ColorContextHelper.cs
- BitmapImage.cs
- ProviderConnectionPointCollection.cs
- BigInt.cs
- DataConnectionHelper.cs
- HttpAsyncResult.cs
- ExpressionVisitor.cs
- MimeTypeAttribute.cs
- PieceNameHelper.cs
- SizeKeyFrameCollection.cs
- OleDbError.cs
- RadioButtonRenderer.cs
- CodeIdentifier.cs
- DropDownButton.cs
- selecteditemcollection.cs
- ListViewInsertEventArgs.cs
- NameValueFileSectionHandler.cs
- WorkBatch.cs
- SoapHeaderAttribute.cs
- WebBrowserNavigatedEventHandler.cs
- PackWebRequestFactory.cs
- LOSFormatter.cs
- RadioButtonFlatAdapter.cs
- NamedObject.cs
- PriorityBinding.cs
- RequiredFieldValidator.cs
- SocketPermission.cs
- dsa.cs
- MULTI_QI.cs
- Material.cs
- HttpWebRequest.cs
- DataBindingCollection.cs
- Documentation.cs
- Identity.cs
- AuthenticationConfig.cs
- UseLicense.cs
- ContentValidator.cs
- TimelineCollection.cs
- DelayedRegex.cs
- DecoderNLS.cs