我尝试构建一个类(用于更大的个人项目),该类应该在表单对象上绘制图表。我做的最后一件事就是把我的"坏" flast将代码编写成一个类并清理它,但后来我意识到在使用GDI +时我经常需要处理许多不同的笔和颜色。现在是否有可能建立一个持有"样式表的班级"我可以轻松地存储在.txt或.xml文件中,然后读入并使用?有人有一些想法如何做到这一点? 菲利克斯
答案 0 :(得分:1)
创建自己的类来存储颜色和笔。这样的事情。
public class Style
{
public List<Color> Colors { get; set; }
public List<Pen> Pens { get; set; }
public void Save(string filename)
{
var xml = new XElement("style",
this.Colors.Select(c => new XElement("color", c.ToArgb())),
this.Pens.Select(p => new XElement("pen",
new XElement("color", p.Color.ToArgb()),
new XElement("width", p.Width))));
xml.Save(filename);
}
public void Load(string filename)
{
var xml = XElement.Load(filename);
this.Colors = xml.Elements("color")
.Select(c => Color.FromArgb((int)c))
.ToList();
this.Pens = xml.Elements("pen")
.Select(p => new Pen(
Color.FromArgb((int)p.Element("color")),
(float)p.Element("width")))
.ToList();
}
}
现在您可以轻松地将其保存到xml文件并回读。
var style = new Style();
style.Colors = new List<Color> {
Color.FromArgb(10, 20, 30),
Color.FromArgb(15, 25, 35)
};
style.Pens = new List<Pen> {
new Pen(Color.Red, 5f),
new Pen(Color.Green, 4f)
};
style.Save("style.xml");
var style2 = new Style();
style2.Load("style.xml");
添加代码以读取/写入其他Pen
属性。