WPF (Windows Presentation Foundation)

WPF (Windows Presentation Foundation)

Microsoft社がWindowsシリーズに搭載を進めている、グラフィックス表示やユーザインターフェースなどに関する処理をまとめたソフトウェアコンポーネント。また、プログラムからそれらを利用するためのプログラミングインターフェース (API)。同社のソフトウェア基盤の体系である.NET Frameworkの一部で、Windows Vistaに標準で搭載された.NET Framework 3.0から導入された。「Avalon」は開発時のコードネーム。従来のWindowsでは歴史的な経緯により、

  • ウィンドウ描画などのユーザインターフェース関連の処理や図形描画などの2Dグラフィックス処理 (Win32GDI)
  • 3Dグラフィックス処理 (DirectX)
  • 音声・動画関連の処理 (MCI、DirectX、Windows Media)

などがバラバラに提供されており、それぞれ別のコンポーネントやプログラミングインターフェースを導入・利用する必要があった。また、ユーザインターフェースに3Dグラフィックスを利用するといったソフトウェアの構築は難しかった。WPFはこうした表現・操作に関わる処理を全面的に統合し、統一的なAPI体系を通じて利用することができるようになった。異なる種類の表示方法を混在させたプログラミングなども容易になっており、これらを組み合わせることも容易になった。

WPFは、

  • 直線や円・矩形などの描画、塗りつぶしなどの一般的な2Dグラフィックス
  • Direct3Dに相当する3Dグラフィックス
  • JPEGやPNG、BMPなどの一般的な画像形式
  • WMV、AVIなどの主要な動画形式
  • Flashのようなベクタグラフィックスと時間ベースのアニメーション
  • ClearTypeによるテキスト描画
  • ボタンやリストなどの入力要素

などをサポートする。

WPFを利用したプログラムの記述は.NET Frameworkがサポートする様々なプログラミング言語で行うことができる。また、XAMLというXMLベースのマークアップ言語を用いて、Webページのように画面レイアウト等を記述し、関連する処理を従来のプログラミング言語で別に記述して統合することにより、表現と処理を分離して別々に開発することができる。

Microsoft社では、Webブラウザの中に埋め込まれる形で動作するWPFのサブセット「WPF/E」(Windows Presentation Foundation/Everywhere)を提供しており、Windows以外のプラットフォームでもWPF/Eを通じてWPF対応アプリケーションを動作させることができるようになっている。

Windows Vistaのユーザインターフェース関連の処理にはWPFが全面的に採用されている。また、.NET Framework 3.0を別途入手して導入することにより、Windows XP SP2以降やWindows Server 2003 SP1以降などでも利用できる。今後リリースされるWindows関連製品にはWPFの標準搭載が進むと見られている。

WPFとは 【Windows Presentation Foundation】 - 意味/解説/説明/定義 : IT用語辞典

サンプルコード

<Window x:Class="sample.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="100" Width="300">
    <Grid>
        <Label Height="28" HorizontalAlignment="Left" Name="label1" VerticalAlignment="Top" Width="120">Label</Label>
        <Button Height="23" HorizontalAlignment="Right" Name="button1" VerticalAlignment="Bottom" Width="75">Button</Button>
    </Grid>
</Window>

Windows Formの場合