Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / System / Windows / Media / ColorConverter.cs / 1 / ColorConverter.cs
//------------------------------------------------------------------------------
// Microsoft Avalon
// Copyright (c) Microsoft Corporation, 2001, 2002
//
// File: ColorConverter.cs
//-----------------------------------------------------------------------------
using System;
using System.IO;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Reflection;
using MS.Internal;
using System.Windows.Media;
using System.Text;
using System.Collections;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Security;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media
{
///
/// ColorConverter Parses a color.
///
public sealed class ColorConverter : TypeConverter
{
///
/// CanConvertFrom
///
public override bool CanConvertFrom(ITypeDescriptorContext td, Type t)
{
if (t == typeof(string))
{
return true;
}
else
{
return false;
}
}
///
/// TypeConverter method override.
///
/// ITypeDescriptorContext
/// Type to convert to
/// true if conversion is possible
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
if (destinationType == typeof(InstanceDescriptor))
{
return true;
}
return base.CanConvertTo(context, destinationType);
}
///
/// ConvertFromString
///
public static new object ConvertFromString(string value)
{
if ( null == value)
{
return null;
}
return Parsers.ParseColor(value, null);
}
///
/// ConvertFrom - attempt to convert to a Color from the given object
///
///
/// A NotSupportedException is thrown if the example object is null or is not a valid type
/// which can be converted to a Color.
///
public override object ConvertFrom(ITypeDescriptorContext td, System.Globalization.CultureInfo ci, object value)
{
if (null == value)
{
throw GetConvertFromException(value);
}
String s = value as string;
if (null == s)
{
throw new ArgumentException(SR.Get(SRID.General_BadType, "ConvertFrom"), "value");
}
return Parsers.ParseColor(value as string, ci, td);
}
///
/// TypeConverter method implementation.
///
///
/// An NotSupportedException is thrown if the example object is null or is not a Color,
/// or if the destinationType isn't one of the valid destination types.
///
/// ITypeDescriptorContext
/// current culture (see CLR specs)
/// value to convert from
/// Type to convert to
/// converted value
///
/// Critical: calls InstanceDescriptor ctor which LinkDemands
/// PublicOK: can only make an InstanceDescriptor for Color.FromArgb, not an arbitrary class/method
///
[SecurityCritical]
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
if (destinationType != null && value is Color)
{
if (destinationType == typeof(InstanceDescriptor))
{
MethodInfo mi = typeof(Color).GetMethod("FromArgb", new Type[]{typeof(byte), typeof(byte), typeof(byte), typeof(byte)});
Color c = (Color)value;
return new InstanceDescriptor(mi, new object[]{c.A, c.R, c.G, c.B});
}
else if (destinationType == typeof(string))
{
Color c = (Color)value;
return c.ToString(culture);
}
}
// Pass unhandled cases to base class (which will throw exceptions for null value or destinationType.)
return base.ConvertTo(context, culture, value, destinationType);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
// Microsoft Avalon
// Copyright (c) Microsoft Corporation, 2001, 2002
//
// File: ColorConverter.cs
//-----------------------------------------------------------------------------
using System;
using System.IO;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Reflection;
using MS.Internal;
using System.Windows.Media;
using System.Text;
using System.Collections;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Security;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media
{
///
/// ColorConverter Parses a color.
///
public sealed class ColorConverter : TypeConverter
{
///
/// CanConvertFrom
///
public override bool CanConvertFrom(ITypeDescriptorContext td, Type t)
{
if (t == typeof(string))
{
return true;
}
else
{
return false;
}
}
///
/// TypeConverter method override.
///
/// ITypeDescriptorContext
/// Type to convert to
/// true if conversion is possible
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
{
if (destinationType == typeof(InstanceDescriptor))
{
return true;
}
return base.CanConvertTo(context, destinationType);
}
///
/// ConvertFromString
///
public static new object ConvertFromString(string value)
{
if ( null == value)
{
return null;
}
return Parsers.ParseColor(value, null);
}
///
/// ConvertFrom - attempt to convert to a Color from the given object
///
///
/// A NotSupportedException is thrown if the example object is null or is not a valid type
/// which can be converted to a Color.
///
public override object ConvertFrom(ITypeDescriptorContext td, System.Globalization.CultureInfo ci, object value)
{
if (null == value)
{
throw GetConvertFromException(value);
}
String s = value as string;
if (null == s)
{
throw new ArgumentException(SR.Get(SRID.General_BadType, "ConvertFrom"), "value");
}
return Parsers.ParseColor(value as string, ci, td);
}
///
/// TypeConverter method implementation.
///
///
/// An NotSupportedException is thrown if the example object is null or is not a Color,
/// or if the destinationType isn't one of the valid destination types.
///
/// ITypeDescriptorContext
/// current culture (see CLR specs)
/// value to convert from
/// Type to convert to
/// converted value
///
/// Critical: calls InstanceDescriptor ctor which LinkDemands
/// PublicOK: can only make an InstanceDescriptor for Color.FromArgb, not an arbitrary class/method
///
[SecurityCritical]
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
if (destinationType != null && value is Color)
{
if (destinationType == typeof(InstanceDescriptor))
{
MethodInfo mi = typeof(Color).GetMethod("FromArgb", new Type[]{typeof(byte), typeof(byte), typeof(byte), typeof(byte)});
Color c = (Color)value;
return new InstanceDescriptor(mi, new object[]{c.A, c.R, c.G, c.B});
}
else if (destinationType == typeof(string))
{
Color c = (Color)value;
return c.ToString(culture);
}
}
// Pass unhandled cases to base class (which will throw exceptions for null value or destinationType.)
return base.ConvertTo(context, culture, value, destinationType);
}
}
}
// 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
- CodeMemberProperty.cs
- InvokePattern.cs
- ZipIOExtraField.cs
- CompensationTokenData.cs
- ZipPackage.cs
- ProfileSettingsCollection.cs
- ConvertBinder.cs
- DefaultSection.cs
- Win32Native.cs
- DataGridViewAutoSizeModeEventArgs.cs
- DrawingBrush.cs
- InstanceDataCollection.cs
- PreviewKeyDownEventArgs.cs
- Rectangle.cs
- DbgUtil.cs
- AdapterDictionary.cs
- CacheAxisQuery.cs
- MachineKeyConverter.cs
- WebConfigurationHost.cs
- EncoderExceptionFallback.cs
- SortedDictionary.cs
- FormsAuthenticationTicket.cs
- UnsafeNativeMethods.cs
- XmlArrayItemAttribute.cs
- CompressionTracing.cs
- SqlTypeSystemProvider.cs
- TransportSecurityHelpers.cs
- XmlIlGenerator.cs
- PersistChildrenAttribute.cs
- ThreadInterruptedException.cs
- XmlProcessingInstruction.cs
- HttpInputStream.cs
- TraceHwndHost.cs
- TypedDataSourceCodeGenerator.cs
- comcontractssection.cs
- SmtpNegotiateAuthenticationModule.cs
- HtmlWindow.cs
- MessageQueuePermissionAttribute.cs
- FormViewCommandEventArgs.cs
- DataKeyCollection.cs
- BitVector32.cs
- DataGridViewCellValidatingEventArgs.cs
- InvalidWMPVersionException.cs
- PackageStore.cs
- Script.cs
- QilSortKey.cs
- xmlsaver.cs
- HttpRequestBase.cs
- ApplicationGesture.cs
- XamlReader.cs
- ActiveXHost.cs
- BrowserCapabilitiesFactory.cs
- ConstNode.cs
- SqlCharStream.cs
- RuleSetDialog.cs
- DrawingContext.cs
- FlowDocumentPage.cs
- DebugHandleTracker.cs
- GeometryHitTestParameters.cs
- InfoCardClaim.cs
- RankException.cs
- VersionedStreamOwner.cs
- BinaryFormatterWriter.cs
- WindowsAuthenticationModule.cs
- HtmlInputButton.cs
- InplaceBitmapMetadataWriter.cs
- GridEntry.cs
- EastAsianLunisolarCalendar.cs
- SharedConnectionWorkflowTransactionService.cs
- PkcsUtils.cs
- AsynchronousChannel.cs
- TabControlEvent.cs
- FederatedMessageSecurityOverHttp.cs
- MultilineStringConverter.cs
- EmbeddedMailObject.cs
- XmlDigitalSignatureProcessor.cs
- ActivatableWorkflowsQueryResult.cs
- WebServicesSection.cs
- UnmanagedMemoryStream.cs
- XsltInput.cs
- GeometryDrawing.cs
- VariantWrapper.cs
- ExpressionNode.cs
- DataServiceQueryProvider.cs
- TextTreeFixupNode.cs
- HandlerMappingMemo.cs
- PreDigestedSignedInfo.cs
- OdbcErrorCollection.cs
- FloaterBaseParaClient.cs
- RequestCachePolicyConverter.cs
- SmiEventSink_Default.cs
- Environment.cs
- IsolatedStorageException.cs
- HttpCacheVaryByContentEncodings.cs
- FilterInvalidBodyAccessException.cs
- TypeSystemHelpers.cs
- ObjectParameterCollection.cs
- SettingsPropertyCollection.cs
- ImageSource.cs
- WindowsIPAddress.cs