Windows Presentation Foundation
Windows Presentation Foundation (WPF) はマイクロソフトが開発した、.NET Framework 3.0以降に含まれるユーザインタフェースサブシステムである。 WPFは、ユーザインタフェースとロジックを明確に区別する一貫したプログラミングモデルを提供する。 WPFアプリケーションはデスクトップで実行するだけでなくウェブブラウザ上で配置・実行することもできる(ただし類似技術のSilverlightとは違い、Windowsのみがターゲット環境となる)。 WPFによって、ユーザインタフェース、2Dおよび3Dオブジェクトの描画、ベクトルグラフィックス、ラスタグラフィックス、 アニメーション、音声および動画の再生などといった表現手法を統一的に利用することができる。
.NET Framework 3.0はWindows Vistaにプリインストールされており、Windows XP SP2およびWindows Server 2003でも利用できる。また、Windows 7には.NET Framework 3.5 SP1がプリインストールされている。WPFのバージョン番号は、それが含まれる.NET Frameworkのバージョンと同列に扱われることが多い。例えば.NET 3.0上で動作するものはWPF 3.0、.NET 3.5/3.5 SP1で機能拡張されたものはWPF 3.5、そして.NET 4で機能拡張されたものはWPF 4といった具合である。
目次 |
特徴 [編集]
次に示すのはWPFの特徴の一部である。
グラフィックス [編集]
全てのグラフィックスはDirect3Dを介して描画される。 また、可能であればGPUによるハードウェアアクセラレーションが使用される。 これにより、高速かつ高度なグラフィックを統一されたインターフェイスで実現・利用することができる。
- Direct3Dを通して描画することにより、ビデオカード上のGPUに描画処理の一部を任せることが可能になる。これは(GDI/GDI+で問題となっていた)CPUの負荷を軽減することにつながる。
- ベクトルグラフィックスをサポートする。これは損失のない拡大縮小を可能にする。
- 3Dモデルのレンダリングや相互作用をサポートする。
Viewport3DのようなWPFフレームワーク自体に組み込まれた機能のほか、D3DImageのようなDirect3D相互運用性も備えている。
印刷 [編集]
WPFは標準でXPSフォーマット (XPS API) をサポートし、画面に表示されているUIElementツリーをそのまま印刷に使用することができる (WYSIWYG)。なお、WPF同様に、画面描画をGPUアクセラレートする技術にDirect2Dが存在するが、Direct2Dは印刷デバイスへの出力を直接サポートしないので、こちらはGDI/GDI+などを併用する必要がある。
配置 [編集]
- WPFは通常のスタンドアローンアプリケーションだけでなく、XAMLブラウザアプリケーション (XBAP) として配置することもできる。
- スタンドアローンアプリケーションはClickOnceやMicrosoft Windows Installer (MSI) などのインストーラによってローカルコンピュータ上に配置されるアプリケーションである。
- XAMLブラウザアプリケーション (XBAP) はInternet Explorerなどのウェブブラウザによってホストされるアプリケーションである。コンピュータリソースへのアクセスやWPFの機能は一部制限される。
相互運用性 [編集]
- WPFはWin32(ネイティブコード)との相互運用機能を提供する。Win32のコード内からWPFを利用する(例:
HwndHostクラスの合成、アセンブリのCOM公開など)ことも、WPFからWin32のコードを利用する(例:HwndHostクラスの継承、D3DImageクラスなど)ことも可能である。 - Windows Formsとの相互運用も可能である(
ElementHost、WindowsFormsHostクラス)。
なお、WPFのUI上に配置されたWin32あるいはWindows FormsによるレガシーなUIコントロールの描画に対しては、GPUアクセラレーションが効かない(GDI/GDI+によって描画される)ので注意が必要である。
マルチメディア [編集]
- WPFはブラシ、ペン、幾何図形、変形などの基本的な2Dグラフィックス機能を提供する。
- WPFで提供される3D機能はDirect3Dのサブセットである。しかし、WPFではよりユーザインタフェース (UI) などの要素に密接に利用することができる。これによって3DのUI、文書、メディアなどが可能になる。
- 一般的なラスター画像フォーマットをサポートする。
- WMV、MPEG、AVIフォーマットの動画をサポートする。
- 時間ベースのアニメーションをサポートする。これはシステムのパフォーマンスに依存せずアニメーションのスピードを一定に保つ。
- ClearTypeを利用したテキストレンダリングをサポートする。また、OpenTypeフォントの機能もサポートする。
データバインディング [編集]
- WPFは次に示す3種類のデータバインディングをサポートする。
- one time: クライアントはサーバ上のアップデートを無視する。
- one way: クライアントはデータに対して書込み禁止の権限をもつ。
- two way: クライアントは読み込みと書き込み両方の権限をもつ。
ユーザインタフェース (UI) [編集]
WPFのUIはすべてXAMLと呼ばれるXMLベースのマークアップ言語で記述され、対応するイベントハンドラなどをC#あるいはVB.NETなどの.NET系言語で記述することになる(コードビハインド)。これはWPFの強力な利点のひとつであり、ロジックとインタフェースを完全に切り離すことができる。
- ボタン、メニュー、リストボックスなどといった基本的な組み込みコントロールが提供される。
- UI要素の機能拡張や外観のカスタマイズ(カスタムテンプレートの作成)が、Win32あるいはWindows Formsと比べて容易である。
Silverlight [編集]
マイクロソフトによって開発された類似技術にSilverlightが存在するが、Silverlightは主にブラウザ上での実行を想定しているのに対し、WPFはよりクライアントPC環境に密着したスタンドアローン向け技術である。また、Silverlightで使用される.NET Frameworkは基本的に.NET Compact Frameworkのような機能制限付きサブセットであるが、WPFで使用される.NET FrameworkはWindows PC環境向けのフルセットである点も異なる。
関連項目 [編集]
- Microsoft Silverlight
- Microsoft Visual Studio - 従来からWPFの統合開発環境であったが、Visual Studio 2010ではそれ自体がWPFで実装されるに至っている。
- XAML
外部リンク [編集]
- WPF技術情報
- Windows Presentation Foundation ホーム
- MSDNフォーラム - Windows Presentation Foundation
- WPF Tutorial.net
|
||||||||||||||||||||