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
- CollectionType.cs
- NetworkInformationPermission.cs
- VectorAnimationUsingKeyFrames.cs
- HtmlInputHidden.cs
- ParameterToken.cs
- SvcMapFile.cs
- DateTimePicker.cs
- List.cs
- MailAddress.cs
- MarginsConverter.cs
- ConfigurationSectionGroup.cs
- PrintDialog.cs
- CoTaskMemHandle.cs
- ConnectionStringSettingsCollection.cs
- EntityTransaction.cs
- SystemIPInterfaceProperties.cs
- UriWriter.cs
- X509PeerCertificateElement.cs
- SqlMethods.cs
- DrawListViewItemEventArgs.cs
- ValidationHelper.cs
- ExpressionBinding.cs
- KeyConstraint.cs
- InstallerTypeAttribute.cs
- ZipIOCentralDirectoryBlock.cs
- PageThemeBuildProvider.cs
- CompilerError.cs
- CalendarItem.cs
- AlternationConverter.cs
- DelegateBodyWriter.cs
- SubMenuStyle.cs
- Speller.cs
- FloatSumAggregationOperator.cs
- QuaternionAnimationUsingKeyFrames.cs
- PropertyMapper.cs
- ContextStack.cs
- MethodExpression.cs
- ActivityDesignerAccessibleObject.cs
- ImmutableDispatchRuntime.cs
- SHA256.cs
- Table.cs
- ImportOptions.cs
- QilInvokeLateBound.cs
- XNodeValidator.cs
- StreamWriter.cs
- Pair.cs
- DiscoveryDocumentSerializer.cs
- NativeMethods.cs
- AsymmetricSecurityProtocolFactory.cs
- DataGridItemCollection.cs
- TokenizerHelper.cs
- DbProviderFactories.cs
- WorkflowItemsPresenter.cs
- TreeViewImageGenerator.cs
- CfgParser.cs
- ResourceCategoryAttribute.cs
- LoginName.cs
- HttpRawResponse.cs
- SoapElementAttribute.cs
- ListControl.cs
- OutputCacheProfile.cs
- Int16.cs
- MsmqTransportElement.cs
- HandledMouseEvent.cs
- Trace.cs
- AnimationClock.cs
- Int32AnimationBase.cs
- HotSpot.cs
- HttpListenerPrefixCollection.cs
- WithParamAction.cs
- ParentControlDesigner.cs
- Fault.cs
- ConsumerConnectionPoint.cs
- AddingNewEventArgs.cs
- MemberHolder.cs
- FileDataSourceCache.cs
- CommonDialog.cs
- ExpressionPrefixAttribute.cs
- DataControlField.cs
- PageThemeBuildProvider.cs
- NegotiationTokenAuthenticatorStateCache.cs
- RegexWriter.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- BitmapEffectInputData.cs
- HwndAppCommandInputProvider.cs
- CustomMenuItemCollection.cs
- ExpandSegmentCollection.cs
- VisualCollection.cs
- Stopwatch.cs
- TimeoutException.cs
- Decimal.cs
- HwndHost.cs
- SmtpSection.cs
- SystemIPv6InterfaceProperties.cs
- WindowsContainer.cs
- SecurityTokenException.cs
- XPathExpr.cs
- WebPartsPersonalization.cs
- DaylightTime.cs
- DataControlCommands.cs