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我不再更改它:)。你是对的。你的答案已经正确处理了。谢谢你的评论。你太棒了=]