InkCanvasについて
前回のタブレット機能サポート範囲の話の続き。
.Net Framework3.0以降は従来のWindowsフォームに加えてWPFアプリケーションというのが選択できるようになった。
Windowsフォームベースのアプリケーションに比べてデザイン面で柔軟で凝ったアプリケーションが作れるようになった。
今後はこちらが主流になるのだろうか・・・。
でも今のところ、従来のWindowsフォームベースのアプリケーションの方が作りやすく生産性がよさそうだ。
WPFアプリケーションを作るのは若干敷居が高い気がする。
で、このWPFを使うとInkCanvasというコントロールが使えようになる。
これはInkPictureのWPF版で手書きのインク入力ができるコントロールになる。
InkPictureに比べて、格段に良いということはなさそうで、だいたい同じようなことができるのだが、試してみたところTabletPC SDKやマージモジュールを使うことなくWindowXPのPCでインクの入力ができるようだ。
.Net Framework3.0以降が動作するPCであればインクの入力ができるようなので、環境的には分かりやすく、作成したアプリケーションを配布しやすい。
ただ、.Net Framework3.0以降が必要なのでWindow2000では利用できないことになる。
(.Net Framework3.0はWindowsXP以降しかサポートされないので)
インクを使ったアプリケーションを作る上で、選択肢が一つ増えたようのなのでどう使い分けるかというところが悩ましい。
WindowsXP以降をサポートしたいのであれば、InkCanvasの方が良いように思う。
Windows2000もサポートするなら、InkPictureにするしかないがこの場合、別途TabletPC SDKをインストールする必要がある。
マージモジュールを使用すれば作ったアプリケーションを配布して実行することはできるが、インクは表示だけで入力することはできない。
この辺を考慮して、どちらを使うか決めるようになるようだ。
ただもう一つ重要なのは、InkCanvasはWPFアプリケーション用のコントロールなので、これを使うということは基本的にはWPFアプリケーションを作ることになる。
逆にInkPictureを使うなら、基本的にはWindowsフォームを作ることになる。
が、使いたいコントロールからアプリケーションのタイプが決められてしまうというのは若干強引な気もする。
というあたりも考慮されているのか、実はMicrosoftはコントロールを相互利用する仕組みも用意していて、WindowsフォームでWPF用のコントロールを利用する、あるいはその逆のことも実は可能だ。
ただ、やはり若干面倒で、たとえばInkCanvasのイベントをWindowsフォームで拾うとか、データを相互でやり取りするのに多少面倒な手続きが必要だった。
(筆者がうまい方法を知らないだけかもしれないが)
なのでやはり、従来のWindowsフォームアプリケーションを作るのならInkPicture、WPFアプリケーションならInkCanvasを使う方が自然だ。
とはいえ、いろいろとアプリを作る側にも事情があるので、その辺を考慮して最適な方法を選択するというのは若干悩ましい。
ちなみに筆者は、すでに作成済みのWindowsフォームアプリケーションがあったため、InkPictureを使ってみたが、やはりTabletPC Edition以外のWindowsXPもサポートしたい。
でも、TabletPC SDKを別途インストールするのも嫌だ。
ということで、Windowsフォーム上でInkCanvasも使うような形でアプリケーションを作ってみた。
で、作ってみたら、またいろいろと問題も出てきたりして、もうちょっと話が続く。
.Net Framework3.0以降は従来のWindowsフォームに加えてWPFアプリケーションというのが選択できるようになった。
Windowsフォームベースのアプリケーションに比べてデザイン面で柔軟で凝ったアプリケーションが作れるようになった。
今後はこちらが主流になるのだろうか・・・。
でも今のところ、従来のWindowsフォームベースのアプリケーションの方が作りやすく生産性がよさそうだ。
WPFアプリケーションを作るのは若干敷居が高い気がする。
で、このWPFを使うとInkCanvasというコントロールが使えようになる。
これはInkPictureのWPF版で手書きのインク入力ができるコントロールになる。
InkPictureに比べて、格段に良いということはなさそうで、だいたい同じようなことができるのだが、試してみたところTabletPC SDKやマージモジュールを使うことなくWindowXPのPCでインクの入力ができるようだ。
.Net Framework3.0以降が動作するPCであればインクの入力ができるようなので、環境的には分かりやすく、作成したアプリケーションを配布しやすい。
ただ、.Net Framework3.0以降が必要なのでWindow2000では利用できないことになる。
(.Net Framework3.0はWindowsXP以降しかサポートされないので)
インクを使ったアプリケーションを作る上で、選択肢が一つ増えたようのなのでどう使い分けるかというところが悩ましい。
WindowsXP以降をサポートしたいのであれば、InkCanvasの方が良いように思う。
Windows2000もサポートするなら、InkPictureにするしかないがこの場合、別途TabletPC SDKをインストールする必要がある。
マージモジュールを使用すれば作ったアプリケーションを配布して実行することはできるが、インクは表示だけで入力することはできない。
この辺を考慮して、どちらを使うか決めるようになるようだ。
ただもう一つ重要なのは、InkCanvasはWPFアプリケーション用のコントロールなので、これを使うということは基本的にはWPFアプリケーションを作ることになる。
逆にInkPictureを使うなら、基本的にはWindowsフォームを作ることになる。
が、使いたいコントロールからアプリケーションのタイプが決められてしまうというのは若干強引な気もする。
というあたりも考慮されているのか、実はMicrosoftはコントロールを相互利用する仕組みも用意していて、WindowsフォームでWPF用のコントロールを利用する、あるいはその逆のことも実は可能だ。
ただ、やはり若干面倒で、たとえばInkCanvasのイベントをWindowsフォームで拾うとか、データを相互でやり取りするのに多少面倒な手続きが必要だった。
(筆者がうまい方法を知らないだけかもしれないが)
なのでやはり、従来のWindowsフォームアプリケーションを作るのならInkPicture、WPFアプリケーションならInkCanvasを使う方が自然だ。
とはいえ、いろいろとアプリを作る側にも事情があるので、その辺を考慮して最適な方法を選択するというのは若干悩ましい。
ちなみに筆者は、すでに作成済みのWindowsフォームアプリケーションがあったため、InkPictureを使ってみたが、やはりTabletPC Edition以外のWindowsXPもサポートしたい。
でも、TabletPC SDKを別途インストールするのも嫌だ。
ということで、Windowsフォーム上でInkCanvasも使うような形でアプリケーションを作ってみた。
で、作ってみたら、またいろいろと問題も出てきたりして、もうちょっと話が続く。