Windows Presentation Foundation (WPF)とは
Windows Presentation Foundation (WPF) は、
マイクロソフトが開発した、
.NET Framework 3.0 以降に搭載されているユーザーインターフェース (UI) サブ
システムです。開発時の
コードネームは「Avalon」でした。WPFは、UIとロジックを分離した一貫性のあるプログラミングモデルを提供し、デスクトップアプリケーションだけでなく、ウェブブラウザ上での実行も可能です。ただし、Silverlightとは異なり、Windows環境のみを対象としています。
WPFの主な特徴
WPFは、以下の様な特徴を備えています。
統一的な表現: UI、2D/3Dグラフィックス、ベクトル/ラスターグラフィックス、アニメーション、音声/動画再生など、多様な表現手法を統合的に扱えます。従来のWindowsアプリケーション開発で必要だったGDI/GDI+、DirectXなどの個別APIの利用を不要にします。
.NET Frameworkとの統合:
.NET Framework 3.0以降に標準搭載されており、WPFのバージョンは、搭載される
.NET Frameworkのバージョンと対応しています。例えば、
.NET Framework 4.8がプリ
インストールされているWindows 11では、WPF 4.8が利用可能です。
グラフィックス: Direct3Dを通じて全てのグラフィックスが描画され、可能な限りGPUによるハードウェアアクセラレーションを活用します。これにより、高速かつ高度なグラフィックスを統一されたインターフェースで利用できます。CPU負荷の軽減、ベクターグラフィックスのサポート、3Dモデルのレンダリングも可能です。高DPI環境にも標準で対応しています。
レンダリング: WPFは、グラフィックスハードウェアのDirectX対応レベルに応じて、GPUアクセラレーションの有無を決定します。Rendering Tierと呼ばれるレベル分けがあり、DirectXのバージョンや
VRAM容量によって、アクセラレーションの適用範囲が変わります。
印刷: XPSフォーマットを標準サポートし、画面表示されたUIをそのまま印刷に使用可能です(WYSIWYG)。
配置: スタンドアロンアプリケーションとXAMLブラウザアプリケーション (XBAP) の2種類の配置方法をサポートします。XBAPはウェブブラウザでホストされるため、一部機能に制限があります。
相互運用性: Win32やWindows Formsとの相互運用が可能です。ただし、レガシーUIコントロールの描画ではGPUアクセラレーションは利用できません。
マルチメディア: 2Dグラフィックス、3Dグラフィックス、ラスター画像、動画、時間ベース
アニメーションをサポートします。ClearTypeによるテキストレンダリングやOpenTypeフォント機能も利用可能です。
データバインディング: one time、one way、two wayの3種類のデータバインディングをサポートします。
UI: UIはXAMLと呼ばれるXMLベースの
マークアップ言語で記述し、イベントハンドラはC#やVB
.NETなどの
.NET言語で記述します。これにより、UIとロジックの分離が可能です。基本的な組み込みコントロール、UI要素のカスタマイズ、XAML拡張構文による
データバインディングもサポートしています。
入力: マウス、キーボード入力に加え、スタイラスペン入力やマルチタッチ入力にも対応しています。
WPFの類似技術
WPFと関連する技術として、マイクロソフトは以下の様な技術も開発しています。
Silverlight:
Adobe Flashの競合技術として開発されました。主にブラウザ上での実行を想定している点がWPFと異なります。
Windowsストアアプリ / UWPアプリ: Windows 8以降で導入されたWindowsストアアプリ(後のユニバーサルWindowsプラットフォーム (UWP) アプリ)は、WPFと同様にXAMLでUIを記述し、類似したプログラミングモデルを提供します。
まとめ
WPFは、.NET Frameworkの強力なUIサブシステムであり、高度なグラフィックス、マルチメディア機能、柔軟なUI設計を可能にします。デスクトップアプリケーションからウェブブラウザアプリケーションまで、幅広いプラットフォームに対応しており、現代的なアプリケーション開発に不可欠な技術と言えるでしょう。
関連項目
Microsoft Silverlight
Microsoft Visual Studio
XAML
Windowsランタイム
Windows API
.NET Framework
MVVM
外部リンク
WPF とは - Visual Studio (Windows) | Microsoft Docs
Windows Presentation Foundation | Microsoft Docs
Windows Presentation Foundation ホーム
Msdn フォーラム - Windows Presentation Foundation ( WPF )
*
WPF Tutorial.net