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
- GroupBox.cs
- Brush.cs
- NamespaceInfo.cs
- TemplateControlParser.cs
- LinqDataSourceView.cs
- HtmlElementErrorEventArgs.cs
- UntypedNullExpression.cs
- ReadOnlyPermissionSet.cs
- FilteredReadOnlyMetadataCollection.cs
- Viewport2DVisual3D.cs
- TrackPoint.cs
- CodeBlockBuilder.cs
- ProfileSettingsCollection.cs
- EntityDataSourceValidationException.cs
- BitmapEffectDrawingContextWalker.cs
- DataReceivedEventArgs.cs
- Effect.cs
- HMACRIPEMD160.cs
- ExpandSegmentCollection.cs
- Encoder.cs
- DataTemplate.cs
- RelatedEnd.cs
- EntityDataSourceSelectingEventArgs.cs
- RequestQueryProcessor.cs
- ConditionCollection.cs
- AvTraceFormat.cs
- HandleRef.cs
- RequestStatusBarUpdateEventArgs.cs
- RecommendedAsConfigurableAttribute.cs
- PointKeyFrameCollection.cs
- TextTreeUndo.cs
- NumberFunctions.cs
- TraceHandler.cs
- PerspectiveCamera.cs
- DataSourceCollectionBase.cs
- COM2Properties.cs
- SqlConnectionHelper.cs
- regiisutil.cs
- BinHexEncoding.cs
- WorkingDirectoryEditor.cs
- BindingList.cs
- ReplyChannel.cs
- Single.cs
- SpeakProgressEventArgs.cs
- HtmlInputRadioButton.cs
- InheritanceContextHelper.cs
- RowSpanVector.cs
- ToolStripSplitButton.cs
- PerspectiveCamera.cs
- CatalogPartDesigner.cs
- RawStylusActions.cs
- TaskFormBase.cs
- WriterOutput.cs
- SchemaDeclBase.cs
- AuthenticateEventArgs.cs
- SpeechUI.cs
- AdapterUtil.cs
- ChannelManager.cs
- AssemblyBuilder.cs
- EventNotify.cs
- XmlSchemaObjectTable.cs
- CompatibleIComparer.cs
- _TransmitFileOverlappedAsyncResult.cs
- XmlElementList.cs
- HyperLinkColumn.cs
- Grammar.cs
- ExtendedTransformFactory.cs
- SetterBaseCollection.cs
- XsltArgumentList.cs
- StylusPointDescription.cs
- SqlMethodTransformer.cs
- EncodingTable.cs
- DefaultWorkflowLoaderService.cs
- MethodToken.cs
- DocumentGridContextMenu.cs
- BitmapPalettes.cs
- ChildTable.cs
- StreamInfo.cs
- HelpInfo.cs
- StringFormat.cs
- SmiMetaData.cs
- VisualStyleTypesAndProperties.cs
- EnlistmentTraceIdentifier.cs
- BlurEffect.cs
- ScrollProperties.cs
- Location.cs
- NativeMethods.cs
- Adorner.cs
- ProcessInfo.cs
- AccessDataSource.cs
- GifBitmapDecoder.cs
- Int16Animation.cs
- EntityClientCacheKey.cs
- ConfigurationSectionCollection.cs
- Pair.cs
- GacUtil.cs
- ResXResourceWriter.cs
- ThreadSafeList.cs
- AssemblyBuilder.cs
- InvalidPropValue.cs