我遇到了我的c#应用程序的问题,我有一个类(设置),我在其中存储我的应用程序的设计设置: 设置类:
public class settings
{
public string menuBackground, textColor, overallBackground, backgroundImage;
}
我已将设置存储在XML文件中:
<settings>
<menuBackground>Black</menuBackground>
<textColor>SteelBlue</textColor>
<overallBackground>White</overallBackground>
<backgroundImage>none</backgroundImage>
</settings>
但现在的问题是我需要更改应用程序中表单项的颜色。
我设法使对象形成xml文件,这不是问题,我试过这个:
var path = @"c:\test\test.xml";
using (FileStream fs = new FileStream(path, FileMode.Open))
{
XmlSerializer xSer = new XmlSerializer(typeof(settings));
settings setting = (settings) xSer.Deserialize(fs);
menuStrip1.BackColor = Color.setting.background;
menuStrip1.ForeColor = setting.foreground;
}
但是visual studio告诉sme颜色需要一个标识符,所以现在我的问题是:如何在Color之后得到我的setting.background中的颜色,所以在这种情况下例如它将是:Color.black;
答案 0 :(得分:1)
您可以使用Enum.Parse
将string
解析为枚举类型:
menuStrip1.BackColor = (Color)Enum.Parse(typeof(Color), setting.background);
答案 1 :(得分:1)
您还没有提到您正在使用的UI框架。如果它是使用System.Drawing中的颜色的东西,那么您需要执行Color.FromName(setting.background)