Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / Media / ImageSource.cs / 2 / 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
- Encoding.cs
- AssemblyInfo.cs
- AnnotationAdorner.cs
- ContentElementCollection.cs
- SqlDataSourceCommandEventArgs.cs
- EditingCommands.cs
- Constraint.cs
- CommonRemoteMemoryBlock.cs
- Matrix3DValueSerializer.cs
- XamlFilter.cs
- InnerItemCollectionView.cs
- GlobalizationAssembly.cs
- Enum.cs
- CodeBinaryOperatorExpression.cs
- ReaderWriterLockSlim.cs
- filewebresponse.cs
- SponsorHelper.cs
- TableParagraph.cs
- BaseCAMarshaler.cs
- TextEmbeddedObject.cs
- StrictModeSecurityHeaderElementInferenceEngine.cs
- DeflateEmulationStream.cs
- NullableDoubleMinMaxAggregationOperator.cs
- OrthographicCamera.cs
- XsltOutput.cs
- StyleCollection.cs
- XmlCharCheckingWriter.cs
- DateRangeEvent.cs
- IInstanceContextProvider.cs
- ManagedWndProcTracker.cs
- WebBaseEventKeyComparer.cs
- Crc32.cs
- ToolStripPanelRenderEventArgs.cs
- IndentTextWriter.cs
- FormatterConverter.cs
- ServiceDurableInstance.cs
- SRGSCompiler.cs
- ArraySet.cs
- DecimalMinMaxAggregationOperator.cs
- Sql8ExpressionRewriter.cs
- Positioning.cs
- Preprocessor.cs
- ColorBuilder.cs
- KoreanCalendar.cs
- validation.cs
- Highlights.cs
- BufferModeSettings.cs
- SchemaMerger.cs
- GZipDecoder.cs
- SrgsGrammarCompiler.cs
- PropertyPushdownHelper.cs
- HttpClientCertificate.cs
- AnnotationComponentChooser.cs
- BindingSource.cs
- DefaultTraceListener.cs
- TableAdapterManagerGenerator.cs
- StubHelpers.cs
- Atom10ItemFormatter.cs
- SpeechRecognitionEngine.cs
- CallbackValidator.cs
- DependencyProperty.cs
- TransformedBitmap.cs
- VisualStyleRenderer.cs
- XmlIlVisitor.cs
- TextTreeInsertUndoUnit.cs
- DependencyProperty.cs
- AttributeEmitter.cs
- BitmapMetadataEnumerator.cs
- EdmSchemaAttribute.cs
- RemotingConfigParser.cs
- FlowDecision.cs
- TextBoxBase.cs
- ProjectionPlan.cs
- MonthChangedEventArgs.cs
- ManagementObjectSearcher.cs
- FaultDesigner.cs
- HyperLinkStyle.cs
- ExpressionServices.cs
- XmlElementList.cs
- VirtualDirectoryMappingCollection.cs
- TcpDuplicateContext.cs
- OdbcRowUpdatingEvent.cs
- EventRecordWrittenEventArgs.cs
- EncryptedPackage.cs
- FirewallWrapper.cs
- ContainerParagraph.cs
- CompositeTypefaceMetrics.cs
- TextSegment.cs
- DataGridView.cs
- WizardStepBase.cs
- ResourceDescriptionAttribute.cs
- UrlPath.cs
- EDesignUtil.cs
- ToolTip.cs
- ExpressionEvaluator.cs
- ProtectedConfiguration.cs
- BindingWorker.cs
- GroupBox.cs
- Literal.cs
- PeerReferralPolicy.cs