Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将十六进制颜色值转换为人类可读的字符串表示形式?_C#_Colors_Windows Store Apps_Hex_Solidcolorbrush - Fatal编程技术网

C# 如何将十六进制颜色值转换为人类可读的字符串表示形式?

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

我想存储一个颜色十六进制值(如“#FFFF1493”)作为其“人性友好”名称(如“深粉色”)

在SLaks和nvoigt的帮助下,我现在得到了以下代码:

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“…”