Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / UI / WebControls / WebColorConverter.cs / 1 / WebColorConverter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Text;
using System.Web.Util;
using System.Web.UI;
using System.Globalization;
using System.Security.Permissions;
///
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class WebColorConverter : ColorConverter {
private static Hashtable htmlSysColorTable;
///
///
///
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) {
if (value is string) {
string colorText = ((string)value).Trim();
Color c = Color.Empty;
// empty color
if (String.IsNullOrEmpty(colorText))
return c;
// #RRGGBB notation is handled by ColorConverter
if (colorText[0] == '#') {
return base.ConvertFrom(context, culture, value);
}
// special case. HTML requires LightGrey, but System.Drawing.KnownColor has LightGray
if (StringUtil.EqualsIgnoreCase(colorText, "LightGrey")) {
return Color.LightGray;
}
// System color
if (htmlSysColorTable == null) {
InitializeHTMLSysColorTable();
}
object o = htmlSysColorTable[colorText];
if (o != null) {
return (Color)o;
}
}
// ColorConverter handles all named and KnownColors
return base.ConvertFrom(context, culture, value);
}
///
///
///
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
if (destinationType == null) {
throw new ArgumentNullException("destinationType");
}
if (destinationType == typeof(string)) {
if (value != null) {
Color c = (Color)value;
if (c == Color.Empty) {
return String.Empty;
}
/*
if (c.IsKnownColor) {
// Handle Web system colors and any 'special' named colors
string colorString = null;
switch (c.ToKnownColor()) {
case KnownColor.ActiveBorder: colorString = "ActiveBorder"; break;
case KnownColor.ActiveCaption: colorString = "ActiveCaption"; break;
case KnownColor.AppWorkspace: colorString = "AppWorkspace"; break;
case KnownColor.Desktop: colorString = "Background"; break;
case KnownColor.Control: colorString = "ButtonFace"; break;
case KnownColor.ControlLight: colorString = "ButtonHighlight"; break;
case KnownColor.ControlDark: colorString = "ButtonShadow"; break;
case KnownColor.ControlText: colorString = "ButtonText"; break;
case KnownColor.ActiveCaptionText: colorString = "CaptionText"; break;
case KnownColor.GrayText: colorString = "GrayText"; break;
case KnownColor.HotTrack:
case KnownColor.Highlight: colorString = "Highlight"; break;
case KnownColor.HighlightText: colorString = "HighlightText"; break;
case KnownColor.InactiveBorder: colorString = "InactiveBorder"; break;
case KnownColor.InactiveCaption: colorString = "InactiveCaption"; break;
case KnownColor.InactiveCaptionText: colorString = "InactiveCaptionText"; break;
case KnownColor.Info: colorString = "InfoBackground"; break;
case KnownColor.InfoText: colorString = "InfoText"; break;
case KnownColor.Menu: colorString = "Menu"; break;
case KnownColor.MenuText: colorString = "MenuText"; break;
case KnownColor.ScrollBar: colorString = "Scrollbar"; break;
case KnownColor.ControlDarkDark: colorString = "ThreeDDarkShadow"; break;
case KnownColor.ControlLightLight: colorString = "ButtonHighlight"; break;
case KnownColor.Window: colorString = "Window"; break;
case KnownColor.WindowFrame: colorString = "WindowFrame"; break;
case KnownColor.WindowText: colorString = "WindowText"; break;
case KnownColor.LightGray: colorString = "LightGrey"; break;
}
if (colorString != null) {
return colorString;
}
}
*/
if (c.IsKnownColor == false) {
// in the Web scenario, colors should be formatted in #RRGGBB notation
StringBuilder sb = new StringBuilder("#", 7);
sb.Append((c.R).ToString("X2", CultureInfo.InvariantCulture));
sb.Append((c.G).ToString("X2", CultureInfo.InvariantCulture));
sb.Append((c.B).ToString("X2", CultureInfo.InvariantCulture));
return sb.ToString();
}
}
}
return base.ConvertTo(context, culture, value, destinationType);
}
private static void InitializeHTMLSysColorTable() {
Hashtable t = new Hashtable(StringComparer.OrdinalIgnoreCase);
t["activeborder"] = Color.FromKnownColor(KnownColor.ActiveBorder);
t["activecaption"] = Color.FromKnownColor(KnownColor.ActiveCaption);
t["appworkspace"] = Color.FromKnownColor(KnownColor.AppWorkspace);
t["background"] = Color.FromKnownColor(KnownColor.Desktop);
t["buttonface"] = Color.FromKnownColor(KnownColor.Control);
t["buttonhighlight"] = Color.FromKnownColor(KnownColor.ControlLightLight);
t["buttonshadow"] = Color.FromKnownColor(KnownColor.ControlDark);
t["buttontext"] = Color.FromKnownColor(KnownColor.ControlText);
t["captiontext"] = Color.FromKnownColor(KnownColor.ActiveCaptionText);
t["graytext"] = Color.FromKnownColor(KnownColor.GrayText);
t["highlight"] = Color.FromKnownColor(KnownColor.Highlight);
t["highlighttext"] = Color.FromKnownColor(KnownColor.HighlightText);
t["inactiveborder"] = Color.FromKnownColor(KnownColor.InactiveBorder);
t["inactivecaption"] = Color.FromKnownColor(KnownColor.InactiveCaption);
t["inactivecaptiontext"] = Color.FromKnownColor(KnownColor.InactiveCaptionText);
t["infobackground"] = Color.FromKnownColor(KnownColor.Info);
t["infotext"] = Color.FromKnownColor(KnownColor.InfoText);
t["menu"] = Color.FromKnownColor(KnownColor.Menu);
t["menutext"] = Color.FromKnownColor(KnownColor.MenuText);
t["scrollbar"] = Color.FromKnownColor(KnownColor.ScrollBar);
t["threeddarkshadow"] = Color.FromKnownColor(KnownColor.ControlDarkDark);
t["threedface"] = Color.FromKnownColor(KnownColor.Control);
t["threedhighlight"] = Color.FromKnownColor(KnownColor.ControlLight);
t["threedlightshadow"] = Color.FromKnownColor(KnownColor.ControlLightLight);
t["window"] = Color.FromKnownColor(KnownColor.Window);
t["windowframe"] = Color.FromKnownColor(KnownColor.WindowFrame);
t["windowtext"] = Color.FromKnownColor(KnownColor.WindowText);
htmlSysColorTable = t;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls {
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Text;
using System.Web.Util;
using System.Web.UI;
using System.Globalization;
using System.Security.Permissions;
///
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class WebColorConverter : ColorConverter {
private static Hashtable htmlSysColorTable;
///
///
///
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) {
if (value is string) {
string colorText = ((string)value).Trim();
Color c = Color.Empty;
// empty color
if (String.IsNullOrEmpty(colorText))
return c;
// #RRGGBB notation is handled by ColorConverter
if (colorText[0] == '#') {
return base.ConvertFrom(context, culture, value);
}
// special case. HTML requires LightGrey, but System.Drawing.KnownColor has LightGray
if (StringUtil.EqualsIgnoreCase(colorText, "LightGrey")) {
return Color.LightGray;
}
// System color
if (htmlSysColorTable == null) {
InitializeHTMLSysColorTable();
}
object o = htmlSysColorTable[colorText];
if (o != null) {
return (Color)o;
}
}
// ColorConverter handles all named and KnownColors
return base.ConvertFrom(context, culture, value);
}
///
///
///
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
if (destinationType == null) {
throw new ArgumentNullException("destinationType");
}
if (destinationType == typeof(string)) {
if (value != null) {
Color c = (Color)value;
if (c == Color.Empty) {
return String.Empty;
}
/*
if (c.IsKnownColor) {
// Handle Web system colors and any 'special' named colors
string colorString = null;
switch (c.ToKnownColor()) {
case KnownColor.ActiveBorder: colorString = "ActiveBorder"; break;
case KnownColor.ActiveCaption: colorString = "ActiveCaption"; break;
case KnownColor.AppWorkspace: colorString = "AppWorkspace"; break;
case KnownColor.Desktop: colorString = "Background"; break;
case KnownColor.Control: colorString = "ButtonFace"; break;
case KnownColor.ControlLight: colorString = "ButtonHighlight"; break;
case KnownColor.ControlDark: colorString = "ButtonShadow"; break;
case KnownColor.ControlText: colorString = "ButtonText"; break;
case KnownColor.ActiveCaptionText: colorString = "CaptionText"; break;
case KnownColor.GrayText: colorString = "GrayText"; break;
case KnownColor.HotTrack:
case KnownColor.Highlight: colorString = "Highlight"; break;
case KnownColor.HighlightText: colorString = "HighlightText"; break;
case KnownColor.InactiveBorder: colorString = "InactiveBorder"; break;
case KnownColor.InactiveCaption: colorString = "InactiveCaption"; break;
case KnownColor.InactiveCaptionText: colorString = "InactiveCaptionText"; break;
case KnownColor.Info: colorString = "InfoBackground"; break;
case KnownColor.InfoText: colorString = "InfoText"; break;
case KnownColor.Menu: colorString = "Menu"; break;
case KnownColor.MenuText: colorString = "MenuText"; break;
case KnownColor.ScrollBar: colorString = "Scrollbar"; break;
case KnownColor.ControlDarkDark: colorString = "ThreeDDarkShadow"; break;
case KnownColor.ControlLightLight: colorString = "ButtonHighlight"; break;
case KnownColor.Window: colorString = "Window"; break;
case KnownColor.WindowFrame: colorString = "WindowFrame"; break;
case KnownColor.WindowText: colorString = "WindowText"; break;
case KnownColor.LightGray: colorString = "LightGrey"; break;
}
if (colorString != null) {
return colorString;
}
}
*/
if (c.IsKnownColor == false) {
// in the Web scenario, colors should be formatted in #RRGGBB notation
StringBuilder sb = new StringBuilder("#", 7);
sb.Append((c.R).ToString("X2", CultureInfo.InvariantCulture));
sb.Append((c.G).ToString("X2", CultureInfo.InvariantCulture));
sb.Append((c.B).ToString("X2", CultureInfo.InvariantCulture));
return sb.ToString();
}
}
}
return base.ConvertTo(context, culture, value, destinationType);
}
private static void InitializeHTMLSysColorTable() {
Hashtable t = new Hashtable(StringComparer.OrdinalIgnoreCase);
t["activeborder"] = Color.FromKnownColor(KnownColor.ActiveBorder);
t["activecaption"] = Color.FromKnownColor(KnownColor.ActiveCaption);
t["appworkspace"] = Color.FromKnownColor(KnownColor.AppWorkspace);
t["background"] = Color.FromKnownColor(KnownColor.Desktop);
t["buttonface"] = Color.FromKnownColor(KnownColor.Control);
t["buttonhighlight"] = Color.FromKnownColor(KnownColor.ControlLightLight);
t["buttonshadow"] = Color.FromKnownColor(KnownColor.ControlDark);
t["buttontext"] = Color.FromKnownColor(KnownColor.ControlText);
t["captiontext"] = Color.FromKnownColor(KnownColor.ActiveCaptionText);
t["graytext"] = Color.FromKnownColor(KnownColor.GrayText);
t["highlight"] = Color.FromKnownColor(KnownColor.Highlight);
t["highlighttext"] = Color.FromKnownColor(KnownColor.HighlightText);
t["inactiveborder"] = Color.FromKnownColor(KnownColor.InactiveBorder);
t["inactivecaption"] = Color.FromKnownColor(KnownColor.InactiveCaption);
t["inactivecaptiontext"] = Color.FromKnownColor(KnownColor.InactiveCaptionText);
t["infobackground"] = Color.FromKnownColor(KnownColor.Info);
t["infotext"] = Color.FromKnownColor(KnownColor.InfoText);
t["menu"] = Color.FromKnownColor(KnownColor.Menu);
t["menutext"] = Color.FromKnownColor(KnownColor.MenuText);
t["scrollbar"] = Color.FromKnownColor(KnownColor.ScrollBar);
t["threeddarkshadow"] = Color.FromKnownColor(KnownColor.ControlDarkDark);
t["threedface"] = Color.FromKnownColor(KnownColor.Control);
t["threedhighlight"] = Color.FromKnownColor(KnownColor.ControlLight);
t["threedlightshadow"] = Color.FromKnownColor(KnownColor.ControlLightLight);
t["window"] = Color.FromKnownColor(KnownColor.Window);
t["windowframe"] = Color.FromKnownColor(KnownColor.WindowFrame);
t["windowtext"] = Color.FromKnownColor(KnownColor.WindowText);
htmlSysColorTable = t;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CallbackDebugBehavior.cs
- XmlTextWriter.cs
- ScrollBarRenderer.cs
- WizardForm.cs
- BooleanAnimationBase.cs
- CheckedPointers.cs
- WsatConfiguration.cs
- XmlSchemaSimpleContentRestriction.cs
- CommandBindingCollection.cs
- CommandTreeTypeHelper.cs
- DbModificationClause.cs
- DbConnectionStringCommon.cs
- ListGeneralPage.cs
- ObjectDataSourceView.cs
- TabPage.cs
- validation.cs
- RequestStatusBarUpdateEventArgs.cs
- RoleGroupCollection.cs
- CommandEventArgs.cs
- CustomAttributeBuilder.cs
- BooleanProjectedSlot.cs
- SortQuery.cs
- HWStack.cs
- HttpCacheVaryByContentEncodings.cs
- ScrollBar.cs
- HtmlControlPersistable.cs
- ServiceOperationHelpers.cs
- FixedTextPointer.cs
- PrivilegedConfigurationManager.cs
- Converter.cs
- SelectedDatesCollection.cs
- codemethodreferenceexpression.cs
- TagPrefixCollection.cs
- RsaElement.cs
- MulticastOption.cs
- DocumentSequence.cs
- TextDataBindingHandler.cs
- odbcmetadatacolumnnames.cs
- Manipulation.cs
- WindowsSecurityToken.cs
- TransferRequestHandler.cs
- CreateUserErrorEventArgs.cs
- CLSCompliantAttribute.cs
- CacheMemory.cs
- ImageSourceValueSerializer.cs
- PassportIdentity.cs
- CornerRadiusConverter.cs
- SwitchElementsCollection.cs
- COAUTHINFO.cs
- InstanceHandleConflictException.cs
- MsmqIntegrationProcessProtocolHandler.cs
- PasswordTextNavigator.cs
- GenericsInstances.cs
- AddInEnvironment.cs
- RestHandler.cs
- HtmlSelectionListAdapter.cs
- counter.cs
- BaseTreeIterator.cs
- EncryptedData.cs
- ModelUIElement3D.cs
- newinstructionaction.cs
- DefaultAsyncDataDispatcher.cs
- WebPartVerb.cs
- ExpandCollapsePattern.cs
- CodeThrowExceptionStatement.cs
- TileModeValidation.cs
- CqlIdentifiers.cs
- TreeIterator.cs
- LineVisual.cs
- BStrWrapper.cs
- DebugViewWriter.cs
- CompilerScopeManager.cs
- FontFamily.cs
- SafeNativeMethods.cs
- RenderDataDrawingContext.cs
- InputLanguageManager.cs
- DirectoryRedirect.cs
- WeakEventTable.cs
- BaseDataBoundControl.cs
- DecimalKeyFrameCollection.cs
- ProfileBuildProvider.cs
- Property.cs
- DateTimeConverter2.cs
- Facet.cs
- BinaryWriter.cs
- TableLayout.cs
- ContainerSelectorGlyph.cs
- AsymmetricKeyExchangeFormatter.cs
- XamlToRtfParser.cs
- Recipient.cs
- Highlights.cs
- ResourceProviderFactory.cs
- Wizard.cs
- TemplateControlCodeDomTreeGenerator.cs
- SafeProcessHandle.cs
- Operand.cs
- DataControlImageButton.cs
- DataGrid.cs
- BitmapPalette.cs
- GridViewRowEventArgs.cs