Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- XmlObjectSerializer.cs
- WindowHelperService.cs
- httpapplicationstate.cs
- RegistrationProxy.cs
- SqlServices.cs
- XamlTypeMapperSchemaContext.cs
- RoutingUtilities.cs
- ToolStripSettings.cs
- BooleanAnimationUsingKeyFrames.cs
- MetaTable.cs
- XmlSignatureProperties.cs
- TextRangeSerialization.cs
- ToolboxItemFilterAttribute.cs
- ParameterBuilder.cs
- ToolStripPanelRow.cs
- InnerItemCollectionView.cs
- ProcessModuleDesigner.cs
- MessageQueue.cs
- DbBuffer.cs
- TableStyle.cs
- DeclaredTypeElement.cs
- LogReservationCollection.cs
- URI.cs
- DocumentGridPage.cs
- EntityDataSourceWrapperCollection.cs
- CanExecuteRoutedEventArgs.cs
- ValidatorCollection.cs
- TableLayoutRowStyleCollection.cs
- IRCollection.cs
- SafeEventHandle.cs
- BCLDebug.cs
- NumberSubstitution.cs
- ErrorHandler.cs
- _NestedSingleAsyncResult.cs
- X509SecurityToken.cs
- TypeBinaryExpression.cs
- SymbolDocumentGenerator.cs
- PersistenceException.cs
- WebResponse.cs
- SqlNodeTypeOperators.cs
- StructuredProperty.cs
- EmbeddedObject.cs
- AssertSection.cs
- CodeGenerator.cs
- UserPersonalizationStateInfo.cs
- itemelement.cs
- CodeAttributeArgumentCollection.cs
- FrameworkElement.cs
- GeometryHitTestResult.cs
- PageBuildProvider.cs
- DataGridColumnCollection.cs
- ExecutionContext.cs
- BamlLocalizationDictionary.cs
- DataSourceSelectArguments.cs
- BrowserDefinitionCollection.cs
- TextSyndicationContent.cs
- QilScopedVisitor.cs
- PathFigureCollection.cs
- GridPattern.cs
- MergePropertyDescriptor.cs
- relpropertyhelper.cs
- DrawingServices.cs
- WaitHandleCannotBeOpenedException.cs
- CompiledXpathExpr.cs
- AssemblyHash.cs
- XsltQilFactory.cs
- UsernameTokenFactoryCredential.cs
- XmlSchemaSimpleTypeUnion.cs
- MouseActionValueSerializer.cs
- WorkflowLayouts.cs
- ConstraintCollection.cs
- Rect3DValueSerializer.cs
- StringReader.cs
- KeyConverter.cs
- ServiceDescriptionSerializer.cs
- SvcMapFileLoader.cs
- SQLBytes.cs
- NumericExpr.cs
- Pts.cs
- SchemaCollectionCompiler.cs
- SimpleType.cs
- XmlReflectionImporter.cs
- XsdDateTime.cs
- EntityCollectionChangedParams.cs
- SystemColorTracker.cs
- AtlasWeb.Designer.cs
- RedBlackList.cs
- StrokeNodeOperations2.cs
- InputEventArgs.cs
- WindowsClaimSet.cs
- WindowsIdentity.cs
- FlowLayout.cs
- ButtonRenderer.cs
- CssTextWriter.cs
- HuffmanTree.cs
- SplitterPanel.cs
- ConfigXmlDocument.cs
- Evaluator.cs
- PackWebRequest.cs
- SecurityCapabilities.cs