WPFは.NET Framework 3.0のGUIコンポーネントであり、Windows Formsでは実現が困難であったリッチなGUI、動画や3Dを利用した高度なGUIの実装を行えます。WPFではGUI部分にXML(Extensible Markup Language)をベースしたマークアップ言語であるXAMLを利用して定義します。
XAMLでは、GUIを構成する画像やボタンを配置するだけではなく、Expression Designを利用して制作したGUIパーツをベクター情報としてマークアップすることができます。これによりXAMLでマークアップを行ったGUIパーツでは、画像で制作していたGUIパーツでは不可能だった自由な拡大縮小や変形をおこなうことができます。またXAMLでは2次元のGUIパーツだけでなく、映像やアニメーション、3DCGを扱うことができ、アプリケーションのUI部分をまとめて定義することができます。
WPFによるアプリケーション開発の中で、GUIの定義にXAMLを利用することにより、ロジック部分とGUI部分の分離が行えます。GUI設計を担当するデザイナー側で、GUIのレイアウトやデザイン、動きについてXAMLデータに定義します。プログラマーはデザイナーからGUIについて定義されたXAMLデータを受け取り、実装に利用します。従来の開発では画面指示書などでデザイナーとプログラマー間のGUIに関する情報を共有していました。WPFでアプリケーション開発を行うと、デザイナー側がGUI情報をXAMLに定義することで、デザイナーとプログラマー間の情報共有にかかるコストや認識違いによる手戻りのリスクを削減することができます。
| fig1 |
|---|
![]() |
またXAMLによってロジック部分と分離してUI部分の情報が共有できるため、プログラマーはロジック部分の開発に、UIデザイナーはUI部分の開発に集中して取り込むことができます。GUIの定義にXAMLを利用することで、ロジック部分とUI部分を平行して開発することができます。