0
我嘗試構建應該在表單對象上繪製圖表的類(對於更大的個人項目)。我做的最後一件事就是將我的「糟糕的」自制代碼放入課堂並清理它,但後來我意識到,在使用GDI +時,我經常需要處理許多不同的筆和顏色。現在是否有可能構建一個擁有「樣式表」的類,我可以輕鬆地將其存儲在.txt或.xml文件中,然後讀入並使用?有人有一些想法如何做到這一點? Felix如何在數據可視化類中實現樣式表
我嘗試構建應該在表單對象上繪製圖表的類(對於更大的個人項目)。我做的最後一件事就是將我的「糟糕的」自制代碼放入課堂並清理它,但後來我意識到,在使用GDI +時,我經常需要處理許多不同的筆和顏色。現在是否有可能構建一個擁有「樣式表」的類,我可以輕鬆地將其存儲在.txt或.xml文件中,然後讀入並使用?有人有一些想法如何做到這一點? Felix如何在數據可視化類中實現樣式表
創建自己的班級,用於存儲顏色和筆。像這樣的東西。
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
屬性。
我會試試看!可能需要一點時間,謝謝你幫助我! – 97hilfel
沒有GDI +的樣式表。它只是一個程序化API。您必須編寫創建所需繪圖對象的代碼。 –