【问题标题】:C#: how to get the content of an object as identifierC#:如何获取对象的内容作为标识符
【发布时间】:2015-01-30 21:28:14
【问题描述】:

我的 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颜色需要一个标识符,所以现在我的问题是:我怎样才能在颜色之后获得我的setting.background中的颜色,所以在这种情况下它会是:Color.black;

【问题讨论】:

    标签: c# xml class colors


    【解决方案1】:

    您还没有提到您使用的 UI 框架。如果它使用 System.Drawing 中的颜色,那么你需要做Color.FromName(setting.background)

    【讨论】:

    • @MethodMan 我以前不能等待
    【解决方案2】:

    您可以使用Enum.Parsestring 解析为枚举类型:

     menuStrip1.BackColor = (Color)Enum.Parse(typeof(Color), setting.background);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多