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
- ImageFormatConverter.cs
- FragmentQuery.cs
- NativeMethods.cs
- XmlSchemaObject.cs
- ToolStripDropTargetManager.cs
- HashMembershipCondition.cs
- MasterPageCodeDomTreeGenerator.cs
- XmlReaderSettings.cs
- TimeSpanConverter.cs
- SQLUtility.cs
- InteropAutomationProvider.cs
- ScriptControlManager.cs
- dsa.cs
- BeginStoryboard.cs
- HttpListenerResponse.cs
- LowerCaseStringConverter.cs
- DocumentViewer.cs
- RowVisual.cs
- regiisutil.cs
- ZipFileInfo.cs
- SettingsSavedEventArgs.cs
- ExtensionElement.cs
- StatusBar.cs
- X509SecurityToken.cs
- MetadataUtilsSmi.cs
- QueryableDataSource.cs
- Int32Converter.cs
- QilReplaceVisitor.cs
- DefaultValueMapping.cs
- XmlILStorageConverter.cs
- _AcceptOverlappedAsyncResult.cs
- Parsers.cs
- GuidTagList.cs
- InputLanguageEventArgs.cs
- HttpTransportBindingElement.cs
- hresults.cs
- UrlAuthFailedErrorFormatter.cs
- TextServicesCompartment.cs
- SystemIPGlobalProperties.cs
- PixelShader.cs
- MobileUserControl.cs
- BuildResultCache.cs
- List.cs
- HttpHandlerActionCollection.cs
- DriveInfo.cs
- WebPartMovingEventArgs.cs
- FixedSchema.cs
- WindowsRegion.cs
- XmlLanguageConverter.cs
- LabelLiteral.cs
- ImageBrush.cs
- DecoderBestFitFallback.cs
- SecurityKeyIdentifier.cs
- PassportAuthentication.cs
- ActivityTrace.cs
- Fault.cs
- XmlReturnReader.cs
- HttpPostedFileBase.cs
- hwndwrapper.cs
- TranslateTransform.cs
- SqlDataSourceEnumerator.cs
- StringWriter.cs
- SizeAnimationBase.cs
- ContextMenu.cs
- Rect3D.cs
- WebConfigurationFileMap.cs
- ContainerControl.cs
- lengthconverter.cs
- LassoHelper.cs
- TcpServerChannel.cs
- WebPartZone.cs
- figurelengthconverter.cs
- ActiveDocumentEvent.cs
- CompositeControl.cs
- XmlValidatingReaderImpl.cs
- DeferrableContentConverter.cs
- HistoryEventArgs.cs
- DeflateEmulationStream.cs
- BaseCodeDomTreeGenerator.cs
- ISCIIEncoding.cs
- clipboard.cs
- GroupItemAutomationPeer.cs
- ResourceProviderFactory.cs
- ResourceDefaultValueAttribute.cs
- CorrelationManager.cs
- InkSerializer.cs
- XmlChoiceIdentifierAttribute.cs
- ResourceReferenceExpressionConverter.cs
- TextRangeAdaptor.cs
- BufferBuilder.cs
- CardSpaceException.cs
- DataGridViewRowsRemovedEventArgs.cs
- LOSFormatter.cs
- StorageComplexTypeMapping.cs
- ToolStripPanelCell.cs
- TraceSection.cs
- ItemCheckEvent.cs
- XmlKeywords.cs
- UrlMappingsSection.cs
- ImageAttributes.cs