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
- DataTable.cs
- Array.cs
- UInt32Converter.cs
- TypeSystem.cs
- BamlTreeNode.cs
- FileSystemEventArgs.cs
- ButtonChrome.cs
- ProviderConnectionPoint.cs
- HTMLTagNameToTypeMapper.cs
- TypedReference.cs
- DataTemplateSelector.cs
- _CookieModule.cs
- ModifiableIteratorCollection.cs
- COM2PropertyDescriptor.cs
- GenericArgumentsUpdater.cs
- BuildTopDownAttribute.cs
- CalendarDateRangeChangingEventArgs.cs
- XPathBinder.cs
- FileDialog_Vista_Interop.cs
- AsyncPostBackTrigger.cs
- UserNameSecurityTokenParameters.cs
- MessageBodyDescription.cs
- OracleFactory.cs
- SqlParameter.cs
- JavascriptCallbackBehaviorAttribute.cs
- ConfigurationLockCollection.cs
- UnsafeMethods.cs
- Substitution.cs
- WsatTransactionInfo.cs
- ForeignConstraint.cs
- CollectionContainer.cs
- XmlDictionaryString.cs
- BezierSegment.cs
- RawStylusSystemGestureInputReport.cs
- ConnectionManagementElementCollection.cs
- StringUtil.cs
- DecoderFallbackWithFailureFlag.cs
- SystemGatewayIPAddressInformation.cs
- DbConnectionPoolGroup.cs
- ColorAnimationBase.cs
- ScriptingProfileServiceSection.cs
- HybridObjectCache.cs
- CacheForPrimitiveTypes.cs
- DecoderFallbackWithFailureFlag.cs
- ExceptionValidationRule.cs
- CommandEventArgs.cs
- InkCanvasAutomationPeer.cs
- ConnectionStringsExpressionBuilder.cs
- SectionRecord.cs
- ScrollItemPatternIdentifiers.cs
- LinqDataSourceDeleteEventArgs.cs
- ToolStripContentPanel.cs
- VectorConverter.cs
- ImageList.cs
- Label.cs
- LinqDataSourceUpdateEventArgs.cs
- FormatVersion.cs
- StreamingContext.cs
- XmlDeclaration.cs
- PingOptions.cs
- ProviderCollection.cs
- ZipPackagePart.cs
- followingsibling.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- WindowsListViewItemStartMenu.cs
- PageTextBox.cs
- DuplicateWaitObjectException.cs
- ProcessRequestArgs.cs
- InputScopeManager.cs
- ClientConfigPaths.cs
- WithStatement.cs
- ToolboxItemAttribute.cs
- XPathDocumentIterator.cs
- ApplicationGesture.cs
- SocketCache.cs
- ServiceModelTimeSpanValidator.cs
- PropertyGeneratedEventArgs.cs
- DeclarativeCatalogPart.cs
- WebSysDisplayNameAttribute.cs
- ImageAutomationPeer.cs
- ThreadAttributes.cs
- ObjectSpanRewriter.cs
- MemoryMappedViewAccessor.cs
- RectKeyFrameCollection.cs
- UInt64Converter.cs
- GridViewCellAutomationPeer.cs
- SiteMembershipCondition.cs
- namescope.cs
- followingquery.cs
- BevelBitmapEffect.cs
- TypeElement.cs
- XamlTemplateSerializer.cs
- BitmapCache.cs
- GridViewSelectEventArgs.cs
- GenericEnumConverter.cs
- DiscoveryDocumentSerializer.cs
- unsafenativemethodsother.cs
- EventPropertyMap.cs
- GenericWebPart.cs
- ChildTable.cs