LineGraph という名のカスタムコントロールを作ってみる その 1

WPF でグラフ表示をするためのコントロールを自作したい.
WPF Toolkit とか使えばいいじゃんとかいうツッコミもあるかもしれないが,
結局自分の思うようなカスタマイズをするにはやっぱり自作しかない.

とりあえず折れ線グラフをターゲットとして考えているので,
カスタムコントロール名も LineGraph としています.

というわけで今回は LineGraph コントロールの構成のお話.
中見はほとんど空っぽだけど XAML で書くとこんな感じに考えています.

まず,グラフタイトルと軸ラベルは単純に TextBlock を置いて,
依存関係プロパティを追加してバインドするようにします.

次に,軸目盛の数値は ItemsControl を利用して配置します.
ItemsSource には AxisItem という独自クラスのコレクションを指定しますが,
詳細はまた後日.

軸目盛のグリッド線も同じく ItemsControl で描画しようかとも思いましたが,
ここではひとつの Path オブジェクトで描画させます.
なのでグラフを表示する領域に Canvas を被せてそこに描画します.

データ点および点を結ぶ線については ItemsControl の中で記述できないかな~なんて考えています.

以上の構想を踏まえてグリッド線だけ描画させるとこんな感じ.
GridOnly

ちなみに MainWindow の XAML は下記のとおり.

LineGraph コントロールは Control から派生させて作成しています.
したがって,MainWindow.xaml の中の LineGraph コントロールに設定されているプロパティのうち,
BorderBrush/BorderThickness/Background 以外のプロパティは
すべて依存関係プロパティとして自分で追加したものになっています.

そろそろ長くなってきたので今回はこの辺で.
次回はグリッド線をどうやって描画しているのかを紹介しようかな.