2016-12-14 15 views
0

フォームオブジェクトにグラフを描画するクラスを作成しようとしました(より大きな個人用プロジェクト用)。私がやった最後のことは、私の "悪い"フラストをクラスに入れてそれを掃除することでしたが、GDI +を使って作業するときに、多くの異なるペンや色を扱わなければならないことに気付きました。今、「スタイルシート」を保持するクラスを構築して、.txtファイルまたは.xmlファイルに簡単に格納してから読み込んで使用できますか?誰かがそれをどうやって行うか考えていますか? フェリックスデータ視覚化クラスでスタイルシートを実装する方法

+1

いいえGDI +のスタイルシートはありません。これはプログラム的なAPIのみです。必要な描画オブジェクトを作成するコードを記述する必要があります。 –

答えて

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のプロパティを読み書きするコードを追加します。

+0

私はそれを試してみましょう!少し時間が必要かもしれません、私を助けてくれてありがとう! – 97hilfel

関連する問題