如何在数据可视化 class 中实现样式 sheet
How to implement a Style sheet in a data visualization class
我尝试构建一个 class(用于更大的个人项目),它应该在表单对象上绘制图表。我做的最后一件事是将我的 "bad" flast made 代码放入 class 并清理它,但后来我意识到在使用 GDI+ 时我经常不得不处理许多不同的笔和颜色.现在是否有可能构建一个 class 来保存一个 "style-sheet",我可以轻松地将其存储在 .txt 或 .xml 文件中,然后读入并使用?有人知道如何做到这一点吗?
菲利克斯
创建您自己的 class 来存储颜色和笔。像这样。
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");
将代码添加到 read/write 其他 Pen
属性。
我尝试构建一个 class(用于更大的个人项目),它应该在表单对象上绘制图表。我做的最后一件事是将我的 "bad" flast made 代码放入 class 并清理它,但后来我意识到在使用 GDI+ 时我经常不得不处理许多不同的笔和颜色.现在是否有可能构建一个 class 来保存一个 "style-sheet",我可以轻松地将其存储在 .txt 或 .xml 文件中,然后读入并使用?有人知道如何做到这一点吗? 菲利克斯
创建您自己的 class 来存储颜色和笔。像这样。
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");
将代码添加到 read/write 其他 Pen
属性。