Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / ColorConverter.cs / 1305600 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TableDetailsRow.cs
- OdbcErrorCollection.cs
- EventRouteFactory.cs
- AssemblyHash.cs
- ForeignConstraint.cs
- CharKeyFrameCollection.cs
- AuditLogLocation.cs
- WmlTextBoxAdapter.cs
- CompiledIdentityConstraint.cs
- CreateUserErrorEventArgs.cs
- PropertyOverridesDialog.cs
- BaseDataListComponentEditor.cs
- SourceFilter.cs
- ReflectTypeDescriptionProvider.cs
- WebErrorHandler.cs
- Content.cs
- RNGCryptoServiceProvider.cs
- QilXmlWriter.cs
- DescriptionAttribute.cs
- BitmapEffectDrawing.cs
- AuthStoreRoleProvider.cs
- BaseParser.cs
- InputChannel.cs
- Line.cs
- SystemIPInterfaceStatistics.cs
- BaseTemplateBuildProvider.cs
- Identifier.cs
- PageBuildProvider.cs
- CursorConverter.cs
- ActivityBindForm.Designer.cs
- CuspData.cs
- Block.cs
- PrintSystemException.cs
- InheritablePropertyChangeInfo.cs
- NetworkStream.cs
- SQLUtility.cs
- StylusPlugInCollection.cs
- BuildProvidersCompiler.cs
- BooleanToVisibilityConverter.cs
- PopOutPanel.cs
- TextSelectionHighlightLayer.cs
- PrefixHandle.cs
- NumericUpDown.cs
- RangeValueProviderWrapper.cs
- PartialCachingAttribute.cs
- ClientOperationFormatterProvider.cs
- TraceSection.cs
- ListControl.cs
- PropertyEntry.cs
- HierarchicalDataTemplate.cs
- SQlBooleanStorage.cs
- AccessedThroughPropertyAttribute.cs
- AllMembershipCondition.cs
- XmlNodeList.cs
- TemplateAction.cs
- ZipIORawDataFileBlock.cs
- __ComObject.cs
- XamlReader.cs
- XmlSchemaComplexContentExtension.cs
- TrackingAnnotationCollection.cs
- Scheduling.cs
- HtmlInputPassword.cs
- BinaryParser.cs
- ProxyWebPartManager.cs
- ZipIOFileItemStream.cs
- HostUtils.cs
- PasswordBoxAutomationPeer.cs
- GetWorkflowTree.cs
- ConnectionManagementSection.cs
- NameTable.cs
- ListDataBindEventArgs.cs
- Odbc32.cs
- StrongNameMembershipCondition.cs
- CodeSubDirectory.cs
- ContentFileHelper.cs
- XmlTextAttribute.cs
- ExceptionValidationRule.cs
- AttachedAnnotationChangedEventArgs.cs
- FontInfo.cs
- PenThreadWorker.cs
- TreeNodeEventArgs.cs
- WebReference.cs
- SqlUserDefinedTypeAttribute.cs
- BasicBrowserDialog.cs
- WebPartEditorApplyVerb.cs
- SoapSchemaImporter.cs
- XPathNodeList.cs
- ContentType.cs
- CaseExpr.cs
- MetadataUtilsSmi.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- FileIOPermission.cs
- PinProtectionHelper.cs
- IndexedString.cs
- CodeTypeMemberCollection.cs
- WebPartEditVerb.cs
- CapabilitiesAssignment.cs
- SafeMILHandle.cs
- LayoutUtils.cs
- SQlBooleanStorage.cs