Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Visual Studio 2008で標準搭載されたWindows Presentation Foundation

Visual Studio 2008 徹底入門 (5)

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/03/25 14:00
目次

WPFについて

 今回は、これらWPF/WCF/WFフレームワークの中からWPFについて取り上げます。

 「WPF」は.NET Framework 3.0で導入されたユーザーインターフェイスフレームワークです。

 これまでWindowsのグラフィックス機能を提供してきたGDIが基本的に2D描画機能のみだったのに対し、WPFは3Dグラフィックスを含め、さまざまなグラフィックス機能を扱うことができるようになっています。

 WPFでは、XAML(Extensible Application Markup Language:ザメル/ザムル)と呼ばれるXMLをベースとした言語を使ってユーザーインターフェイスを記述することができます。また、WPFは高度な3Dグラフィックス機能を持つGPUを生かした描画を行うことができます。これまでゲームなどにしかそのポテンシャルを生かすことができなかったGPUの膨大な計算能力を用い、豊かなUIを実現することができます。

XAMLとは

 「XAML」とは、ユーザーインターフェイスをXML形式で表現したものです。

 .NET Framework 2.0までで使用していたWindows Formsでは、ユーザーインターフェイスがコードの固まりとして表現されていましたが、これはコントロール間の親子関係が掴みづらく、またデザインを直接編集するのが難しい方式でした。

 XAMLでは、ユーザーインターフェイスに使用するコントロールをXMLの要素で、コントロールのプロパティをXMLの属性で表現し、コントロールの入れ子関係などもXMLの要素の親子関係で自然に表現することができます。

 例えば、以下はウィンドウ上にテキストボックスとボタンを配置したXAMLコードです。

 TextBox要素、Button要素とその属性がコントロールとプロパティに対応しています。

XAMLサンプルコード
<Window x:Class="WpfTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WpfTest" Height="600" Width="400"
>
<Grid> <TextBox Height="20" Name="textBox1"></TextBox> <Button Height="30" Name="button1" Width="120">Button</Button> </Grid> </Window>
プロパティ要素について
 コントロールのプロパティのうち、数値や文字列はそのままXMLの属性として表現することができますが、文字列として表現できない複雑なプロパティについては、プロパティ要素という方法で記述します。プロパティ要素は、「コントロール名.プロパティ名」という名前の要素として子要素に配置します。
例えば、矩形を特定の画像で塗りつぶす場合、矩形を表すRectangleコントロールの塗りつぶし方法を示すfillプロパティに、ImageBrushオブジェクトを設定する必要があります。これは次のようなXAMLコードで表すことができます。
プロパティ要素のXAMLコード
<Rectangle Width="100" Height="100"
>
<Rectangle.Fill> <ImageBrush ImageSource="fill.png"/> </Rectangle.Fill> </Rectangle>
この場合、Rectangle.Fill要素がRectangleコントロールのFillプロパティを表すプロパティ要素です。

 XAMLには、Windows Formsと同様のユーザーインターフェイスの静的な構造を記述する機能だけでなく、タイムラインに沿ったアニメーション効果や、さまざまなグラフィックス機能が収められています。

 XAMLはXML形式であるため、Visual Studio以外のさまざまなツールでサポートされていくものと期待されています。ソフトウェア開発の現場において、デザイナがデザインに特化したツールでXAMLを出力し、それを開発者がVisual Studio 2008で開いて実際のコードを記述していく、といった作業分担も可能となっていくでしょう。

 例えば、Microsoft Expression Blendは、XAMLをサポートしたデザインツールです。Expression BlendはVisual Studioと同じプロジェクトファイルを扱うことができますので、Expression BlendとVisual Studioにより、デザイナと開発者が協同してアプリケーション開発に取り組む体制を整えることができます。

WPFのアプリケーション形態

 WPFは以下の2種類の形態で使用することができます。

  1. WPF アプリケーション
  2. 通常のWindows Formsアプリケーションと同様の、スタンドアロン型のアプリケーションです。XAMLを使用し、Windows Formsよりも豊富なグラフィック機能を持ったアプリケーションを作成することができます。
     
  3. WPF ブラウザ アプリケーション
  4. Webブラウザ(Internet Explorer / Firefox)上で動作する、XAMLを使用したプログラムです。XAMLブラウザアプリケーション(XBAP)とも呼びます。
    クライアント環境に.NET Frameworkがインストールされている必要があるため、主にイントラネットなどで、リッチクライアントを作成する用途に向いています。
Microsoft Silverlight
 WPF ブラウザ アプリケーションとは別のリッチクライアント技術として、Microsoft Silverlightがあります。
SilverlightはWPF ブラウザ アプリケーションとは異なり、クロスブラウザ・クロスプラットフォームを実現したフレームワークです。専用のプラグインをインストールする必要があるものの、Windows(Internet Explorer / Mozilla Firefox)/Machintosh(Safari / Mozilla Firefox)がサポートされています。
以前はWPF/Eと呼ばれており、XAMLを使用するという点ではWPFに類似した技術ですが、WPFには含まれていません。

 Silverlightを含め、これらのアプリケーションの特徴、用途についてまとめると、次のようになります。

WPF / Silverlightの特徴/用途
WPF / Silverlightの特徴/用途

 あくまでもWindows OSと.NET Frameworkの組み合わせの上で動作するWPFと、クロスブラウザ・クロスプラットフォームを目指すSilverlightの位置づけの違いに注目してください。

 本記事ではVisual Studio 2008によるWPF開発の流れを説明していきます。

 Visual Studio 2008のWPFサポートは、CTP版のVisual Studio 2005 Extensions for WPFから改善された部分も多く、今後のWPFの普及に向けての活用が期待されます。

 

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2008/03/26 12:17 次回予告を一部修正。

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

  • WINGSプロジェクト 土井 毅(ドイ ツヨシ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

バックナンバー

連載:Visual Studio 2008徹底入門

もっと読む

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5