Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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#_Enums - Fatal编程技术网

C# 不知道如何将其转换为十六进制?

C# 不知道如何将其转换为十六进制?,c#,enums,C#,Enums,这是我写的伪代码 Color temp = Color.FromArgb(Settings.Default["accentColorSetting"].ToString() + "200"); statusInfo.ForeColor = Color.FromArgb(temp.R, temp.G, temp.B);//(R, G, B) 出现问题的部分是Color temp=Color.FromArgb(Settings.Default[“accent

这是我写的伪代码

Color temp = Color.FromArgb(Settings.Default["accentColorSetting"].ToString() + "200");
statusInfo.ForeColor = Color.FromArgb(temp.R, temp.G, temp.B);//(R, G, B)
出现问题的部分是
Color temp=Color.FromArgb(Settings.Default[“accentColorSetting”].ToString()+“200”)

“accentColorSetting”
中的文本为
橙色
,是一个
字符串

这就是我正在查看的代码

我已经有了所有的设置和工作,这是唯一的一部分,我现在有麻烦

据我所知,
Color temp=Color.FromArgb(Settings.Default[“accentColorSetting”].ToString()+“200”)
需要放置一个十六进制颜色,因此它将使用设置中的字符串,即
橙色
,然后我链接的Materialskin代码显示此
橙色200=0xFFAB40,
,因此我希望它将
橙色200
替换为
0xFFAB40


关于如何做到这一点有什么想法吗?

我认为你必须使用
颜色。FromName
给你的颜色与你给的名字相对应。如果是这样,您的代码如下所示:

Color temp = Color.FromName(Settings.Default["accentColorSetting"].ToString());
其中
Settings.Default[“accentColorSetting”]
将有一个值
orange
,如您所说注意:-您可以在设置中添加颜色类型条目,这将是另一个好主意,在这种情况下

您可以尝试Enum.TryParse

主色值;

Enum.TryParse(“橙色200”,输出颜色值)

这是您需要做的:

string colorString = Settings.Default["accentColorSetting"].ToString() + "200";
Accent colorEnum;
Enum.TryParse(colorString, out colorEnum);
statusInfo.ForeColor = Color.FromArgb((int)colorEnum);
首先,找到与字符串对应的
enum
,然后简单地使用该值获得相应的
Color


实际上没有涉及任何妖术。这些枚举都是整数,只是为了更直观地理解,它们是用十六进制写的,但它们只不过是数值而已。例如,您可以执行
(int)Primary.BlueGrey50
,您将看到其相应的数值。

您不需要这个吗?那是什么
+200
?你为什么要使用
enum
标签?@Andrew如果你点击指向他们代码的链接,颜色是
enum
,而
+200
是库中颜色的名称。Parse期望的是
enum
,而不是
color
。实际上,根据所用的设置,我猜他想要的是
口音DNow我不再更改它:)。你是对的。你的答案已经正确处理了。谢谢你的评论。你太棒了=]