コードジンのヘッダーが入ります
Windows Vistaでも標準採用され、プレゼンテーション技術にパラダイムシフトをもたらすものとして注目されている「WPF(Windows Presentation Foundation)」。「WPFによって実現される高速・高品質な描画は、3Dやビデオのアプリケーションに限らず、一般的な業務アプリケーションにおいても、その“底力”を強化するものといえます」とマイクロソフトの高橋忍氏は語る。例えば、大量のデータを表示した画面のスクロール処理などが全くちらつくことなく行えることは、ユーザーエクスペリエンスの観点からは大きな利点である。今後、まさしくそのような意味で、アプリケーション開発のベースも現行のWinFormからWPFへと移行していくのが自然な流れだといえる。
WinFormからWPFへの移行にあたって、重要なポイントとなるのがWPFにおいてもWinFormとほぼ同等のコントロールが用意されているということだ。具体的には、FormやUserControlをはじめ、Button、CheckBox、RadioButton、TextBoxなどのコントロールがそのまま利用できるようになっている。
「重要なのは、それらコントロール自体が、WPFの恩恵を活かした形で大幅に拡張されているということ。これにより、こまれで“職人芸”を要したような高度なインターフェイスの実装が容易に行えるようになっています」と高橋氏は説明する。従来、テキストが使われていたListBoxやComboBoxのアイテムとして画像を利用したアプリケーションの例を実際に示した。
ここで留意しなければならないのが、ダイアログについてだ。基本的にWPFにはウインドウという概念が存在しないため、コントロールとしては用意されていない。「ただし、OpenFileDialog、SaveFileDialogなどは、Presentation Frameworkに実装されています。今後はこれらを参照して、開発するアプリケーションに合ったダイアログというものを検討し、自前で実装していくのが望ましいアプローチだと考えます」と高橋氏は語る。
またWPFでは、標準で提供されているコントロールのデザインを自在に変えることができるのも大きな特徴の1つとなっている。そのために用意されているのがスタイルとテンプレートだ。スタイルではプロパティをまとめて管理することができる機能を、テンプレートではコントロールなどの概観を変更することができる機能をそれぞれ提供している。
特にスタイルに関しては、上位での設定がその下位のオブジェクトにも継承される仕組みとなっている。そのためグループ化して設定することができるほか、スタイルに名前をつけて個々のコントロールからスタイルを選んで設定することも可能である。
一方、WPFではコントロールと、クラスやXMLで用意したデータを紐付けるためのデータバインドという機能も用意されている。これにより、例えばSliderコントロールのプロパティの値をTextBoxコントロールのプロパティに紐付けて値を表示するといった処理も手軽に実装できるようになっている。
「このようにWPFでの開発では、WinFormにおける開発の延長線上にありながら、より高度なインターフェイスを手軽に実現できる多彩な仕組みが用意されています。まずは、実際に体験していただければと考えます」と高橋氏は語った。