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
- Composition.cs
- XdrBuilder.cs
- TextRangeProviderWrapper.cs
- ArcSegment.cs
- GuidelineSet.cs
- AnnotationResource.cs
- OleDbStruct.cs
- FamilyTypefaceCollection.cs
- NonSerializedAttribute.cs
- GeometryHitTestResult.cs
- DialogBaseForm.cs
- Guid.cs
- SqlDependency.cs
- Aggregates.cs
- QueryCacheKey.cs
- EventLogInternal.cs
- UIElementCollection.cs
- XPathNodeHelper.cs
- SelectionItemProviderWrapper.cs
- DataGridItemCollection.cs
- InvokeAction.cs
- HandleRef.cs
- HandledMouseEvent.cs
- ObjectStateManager.cs
- WebMessageEncoderFactory.cs
- AnnotationMap.cs
- HttpWriter.cs
- SafeSerializationManager.cs
- ProfilePropertySettings.cs
- HtmlInputControl.cs
- FrameworkContentElement.cs
- TypeToArgumentTypeConverter.cs
- HttpClientProtocol.cs
- WriterOutput.cs
- Int32Storage.cs
- precedingquery.cs
- BindingContext.cs
- ServiceOperation.cs
- GridViewColumnCollection.cs
- documentsequencetextpointer.cs
- LineGeometry.cs
- RelationshipConstraintValidator.cs
- PasswordBox.cs
- AdPostCacheSubstitution.cs
- PipeStream.cs
- HtmlMeta.cs
- CodeSubDirectory.cs
- UIPermission.cs
- TableLayoutStyle.cs
- PageBreakRecord.cs
- DateTimeOffsetConverter.cs
- CodeCompileUnit.cs
- BrowserDefinition.cs
- HttpCachePolicyElement.cs
- peersecurityelement.cs
- UserControlCodeDomTreeGenerator.cs
- UnsafeNetInfoNativeMethods.cs
- ApplicationServiceHelper.cs
- StringAnimationBase.cs
- DataRecordObjectView.cs
- ErrorWebPart.cs
- UncommonField.cs
- BoundPropertyEntry.cs
- FixedFindEngine.cs
- Compiler.cs
- PlainXmlDeserializer.cs
- EncodingInfo.cs
- _ListenerRequestStream.cs
- CellRelation.cs
- CustomCredentialPolicy.cs
- FontUnitConverter.cs
- ObjectToModelValueConverter.cs
- StrongName.cs
- WebBrowserSiteBase.cs
- PathSegment.cs
- InvalidAsynchronousStateException.cs
- ConfigXmlElement.cs
- LastQueryOperator.cs
- StringExpressionSet.cs
- ValueTable.cs
- PopupEventArgs.cs
- BooleanExpr.cs
- ExceptionUtil.cs
- SafeLibraryHandle.cs
- SelectorAutomationPeer.cs
- CellTreeSimplifier.cs
- SqlUDTStorage.cs
- ReflectPropertyDescriptor.cs
- RegexGroupCollection.cs
- ReflectTypeDescriptionProvider.cs
- TransactionProxy.cs
- WorkflowMarkupSerializationManager.cs
- ADRoleFactoryConfiguration.cs
- Storyboard.cs
- ECDsaCng.cs
- MergeFailedEvent.cs
- UserValidatedEventArgs.cs
- BrushValueSerializer.cs
- TextServicesContext.cs
- DataBindingsDialog.cs