C# 如何将十六进制颜色值转换为人类可读的字符串表示形式?
我想存储一个颜色十六进制值(如“#FFFF1493”)作为其“人性友好”名称(如“深粉色”) 在SLaks和nvoigt的帮助下,我现在得到了以下代码:C# 如何将十六进制颜色值转换为人类可读的字符串表示形式?,c#,colors,windows-store-apps,hex,solidcolorbrush,C#,Colors,Windows Store Apps,Hex,Solidcolorbrush,我想存储一个颜色十六进制值(如“#FFFF1493”)作为其“人性友好”名称(如“深粉色”) 在SLaks和nvoigt的帮助下,我现在得到了以下代码: if (sender is Canvas) { var canvas = sender as Canvas; var brush = canvas.Background as SolidColorBrush; var color = brush.Color; String brushColorAsStr = co
if (sender is Canvas)
{
var canvas = sender as Canvas;
var brush = canvas.Background as SolidColorBrush;
var color = brush.Color;
String brushColorAsStr = color.ToString();
IAppSettings appSettings;
if (App.SaveSettingsLocally)
{
appSettings = new AppSettingLocal();
}
else
{
appSettings = new AppSettingsRemote();
}
appSettings.SaveSetting(VisitsConsts.APP_BAR_COLOR_SETTING, brushColorAsStr);
}
…但brushColorAsStr中的值为“#FFFF1493”(当我单击DeepPink画布控件时),这不适用于我根据所选颜色更改应用程序栏颜色的代码:
String brushColor = appSettings.GetSetting(VisitsConsts.APP_BAR_COLOR_SETTING);
if (null == brushColor) return;
if (brushColor.Equals("Blue"))
{
CmdBar.Background = new SolidColorBrush(Colors.Blue);
}
else if (brushColor.Equals("Aqua"))
. . .
从中我得到了以下建议:
Color colour = (Color)ColorConverter.ConvertFromString(brushColorAsStr);
System.Drawing.Color col = System.Drawing.ColorTranslator.FromHtml(brushColorAsStr);
…但“颜色转换器”和“绘图”在我的应用程序中无法解决。如何从十六进制颜色val中获取人类可读的名称?这些链接可能会对您有所帮助:
这些链接可能对您有所帮助:
没有从数字到名称的映射,但是颜色类从名称映射到数字。您可以使用反射来构建反向映射 有关示例代码,请参见前面的回答:
没有从数字到名称的映射,但是颜色类从名称映射到数字。您可以使用反射来构建反向映射 有关示例代码,请参见前面的回答:
您可能要做的第一件事是去掉alpha通道,即前两个十六进制数字..您可能要做的第一件事是去掉alpha通道,即前两个十六进制数字..不;这些也使用我不可用/我无法解析的类。不要告诉我,我将不得不做“如果颜色=”gobbledygookHexJunq“…”不;这些也使用我不可用/我无法解析的类。别告诉我我最终会做“如果颜色=”gobbledygookHexJunq“…”