ぺぷしのーげん

アプリケーションエンジニアによる雑記ブログ

WPFにチャートやグラフコントロールがなくて困ったのでSparrowToolkitを使ってみた

f:id:hazakurakeita:20160429120932j:plain
知人に頼まれて株関連のアプリケーションを作っているのですが、ここでWPFにチャートコントロールがないことが判明。なんでやねん。色々調べたことをメモ代わりに書き残します。

なぜWPFにチャートコントロールがないのか

ググってみると、WPFにもチャートコントロールがあると錯覚してしまいます。それらの多くがWPF Toolkitのチャートコントロールについてです。確かに、WPF Toolkitは当初チャートコントロールをサポートしていました。しかしそれは開発ベータ版のときの話です。いざ正式バージョンが公開されると、そこにはチャートコントロールは含まれていません。よく見ると、Plus Edditionの提供コントロールに含まれています。

f:id:hazakurakeita:20160429121642p:plain
Extended WPF Toolkit™ Community Edition - Home

そう、つまり有料、新しいWindows Presentation Foundationならね。ってなんでやねん。
チャートの高機能な部分は有料でも分かるのですが、たかが折れ線グラフや棒グラフまで有料なのはいかがなものか。しかし、ここで文句を言っても無料にはならないので、他の回避策を探すしかありません。

Windows Formのチャートコントロールを使う

1つの回避策として、WindowsFormHostを使ってWPF内でWindows Formのチャートコントロールを使う方法があります。
qiita.com


しかし、これにはこれの問題があります。Windows Formは全てのWPFコントロールの上面に表示されてしまうのです。このため、リッチなUIをデザインしたとき、本来は別のコントロールの下面になって隠れるはずの場合でも、上面に表示されてしまいます。つまりデザインが崩れるのです。
d.hatena.ne.jp


WPF4.5から修正されているとかされてないとか、強引に修正しても仕様変更で機能しなくなるとか、明確な回避方法が見当たりませんでした。更に、結局Windows Formのコントロールですので、パフォーマンスの問題も気になります。本当にちょっとしたグラフを描画するだけなら良いのですが、株関連のアプリケーションには不向きだろうと判断し、今回は採用を見送りました。

Sparrow Toolkitのチャートコントロールを使う

WPFのチャートコントロールライブラリは幾つかあります。しかし、サポートが止まっていたり、利用者が全然いなくて使い方が分からないなど問題が多い場合がほとんどです。そんな中、Sparrow Toolkitは情報もそこそこあり、使えそうな雰囲気があったので試しに採用してみました。
sparrowtoolkit.codeplex.com


早速、折れ線グラフを描画してみました。
f:id:hazakurakeita:20160429124822p:plain

まあ、ここまでは良い感じですね。折れ線グラフ以外にも様々なグラフをサポートしています。ただし、日本語で使い方を説明しているサイトや記事はほとんどありません。次回からは僕が英文や自力で導き出した使い方について書いていこうと思います。

hazakurakeita.hatenablog.com



おしまい。