Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FileDialogCustomPlace.cs
- AtlasWeb.Designer.cs
- HttpCacheParams.cs
- SwitchDesigner.xaml.cs
- BasePropertyDescriptor.cs
- __FastResourceComparer.cs
- QilReplaceVisitor.cs
- DesignerVerb.cs
- XmlIncludeAttribute.cs
- ImageInfo.cs
- TextSelectionHighlightLayer.cs
- ActiveXSerializer.cs
- FatalException.cs
- ListControl.cs
- UserNamePasswordValidationMode.cs
- MessageQueueAccessControlEntry.cs
- SQLBytes.cs
- AbstractDataSvcMapFileLoader.cs
- Column.cs
- __ComObject.cs
- DataControlFieldHeaderCell.cs
- Matrix.cs
- AssemblyBuilderData.cs
- MemoryFailPoint.cs
- PropertyTabAttribute.cs
- IndexingContentUnit.cs
- DbgCompiler.cs
- ScriptingProfileServiceSection.cs
- ListParagraph.cs
- ConnectorEditor.cs
- JavascriptCallbackBehaviorAttribute.cs
- uribuilder.cs
- InternalPermissions.cs
- LinkLabelLinkClickedEvent.cs
- FolderBrowserDialog.cs
- DefaultDiscoveryServiceExtension.cs
- PlainXmlWriter.cs
- BigInt.cs
- XmlWhitespace.cs
- XmlRawWriter.cs
- ConnectionManagementSection.cs
- GenericUriParser.cs
- DataTemplateSelector.cs
- DbParameterCollection.cs
- TreeView.cs
- Metafile.cs
- AbstractDataSvcMapFileLoader.cs
- ExtensibleClassFactory.cs
- ZipIOModeEnforcingStream.cs
- ComplexObject.cs
- WebBrowserNavigatedEventHandler.cs
- HyperLinkColumn.cs
- DataTemplateKey.cs
- CellPartitioner.cs
- Polygon.cs
- MsmqEncryptionAlgorithm.cs
- TdsParserStaticMethods.cs
- HeaderCollection.cs
- HttpRuntimeSection.cs
- FileInfo.cs
- DBSchemaTable.cs
- ApplicationManager.cs
- ReversePositionQuery.cs
- SettingsPropertyValue.cs
- HtmlInputFile.cs
- ExpressionDumper.cs
- TraceLevelStore.cs
- StorageAssociationSetMapping.cs
- WebBrowserEvent.cs
- MembershipPasswordException.cs
- DynamicValidatorEventArgs.cs
- FormView.cs
- SmiMetaData.cs
- RotationValidation.cs
- FamilyTypeface.cs
- RegistryConfigurationProvider.cs
- ProfilePropertyMetadata.cs
- CompositeFontFamily.cs
- BasicHttpMessageSecurityElement.cs
- MimeTypeMapper.cs
- SafeRightsManagementHandle.cs
- AsymmetricSignatureFormatter.cs
- SchemaImporterExtensionsSection.cs
- SafeEventLogWriteHandle.cs
- SQLBytes.cs
- DockPattern.cs
- InlineUIContainer.cs
- AlternateViewCollection.cs
- AdjustableArrowCap.cs
- SkipQueryOptionExpression.cs
- AudioFormatConverter.cs
- PropertyTabChangedEvent.cs
- ZipIOExtraFieldPaddingElement.cs
- StrongNameIdentityPermission.cs
- GlyphRun.cs
- XPathDocumentNavigator.cs
- MulticastNotSupportedException.cs
- ColumnHeader.cs
- StylusCaptureWithinProperty.cs
- ItemCollection.cs