Open棟梁Project - マイクロソフト系技術情報 Wiki

...工事中...

目次

概要

XAMLについて。

XAMLは、

などで使用されている。

ここでは、WPF / Siverlight 開発におけるXAMLの利用方法を説明する。

参考

UI を XML 形式で作る、そして MVVM パターンを使ってプロパティとイベントを連結させる(ここの分離は Rx を使っても同じ、あるいは直接コードビハイドでも同じ)パターンとしては、

WPF/Silverlight

概要

WPFは、.NET Framework 3.0で新しく提供され、Windows Vistaで全面的に採用された、リッチでインタラクティブなUIアプリケーションを開発・実行するためのUIサブシステム(クラス ライブラリ・UIコントロールのセットを含むランタイム・フレームワーク)。Windows VistaのUIサブシステムにはWPFが全面的に採用されており、今後のWindowsのUIアプリケーション開発の標準技術として利用できる。

特徴

WPF / Silverlightは、高速なグラフィックスではなく、

を実現するUIサブシステムであるため、Direct3D、DirectShow?、Media Foundationなどを使用して開発する3Dゲームや高品質なビデオ再生アプリの開発には向かないが、業務アプリケーション開発に必要な標準コントロールを備えており、従来の業務アプリケーションにリッチでインタラクティブな効果を追加することも可能である。

開発環境

WPF / Silverlight は、Visual Studio 2008以降や、Expression Blendを使用して開発が可能。Expression Blendはデザイナ向けツールであり、VSに無い以下の機能を有している。

実行環境

WPFは、.NET Framework 3.0以上でサポートされており、Windows XPでも動作可能である。ただし、Windows XPは、Windows Vistaとディスプレイ ドライバ モデルが異なるため、条件によっては、GPUによるハードウェア レンダリングが使用できず、ソフトウェア レンダリングになることでCPUへの負荷が増えたり、見え方が若干変わったりする場合もある。

WPF/SilverlightのOS要件

項番OSWPF(.NET Framework)Silverlight 3Silverlight 4
3.03.54.0
1Windows 7
2Windows Server 2008 R2
3Windows Vista
4Windows Server 2008
5Windows XP
6Windows Server 2003
7Windows 2000 (SP4)
8Mac OS X 10.4.11 以上(Intelベース)

ハードウェア要件、追加のソフトウェア要件を含めた詳細は以下を参照

開発方法

WPF / Silverlightアプリケーションの開発には以下のような特徴がある。

また、XAMLは、XMLをベースとしており各要素からツリー構造のCLRオブジェクトをインスタンス化できる。このため、XAMLは、「ツリー構造のCLRオブジェクトをインスタンス化するためのマークアップ言語」と説明することも可能である 。XAMLによるCLRオブジェクト生成の例は、以下を参考にできる。

UI部分とプログラム部分を分離して記述・実装

UI部分にXAML、プログラム部分にCLR言語と、UI・プログラム部分を分離して記述・実装できるので、Webアプリケーションと同様に画面デザイン(画面モックアップ開発)とプログラム開発の分業が可能である。例えば、UI開発ツールに特化したExpression Blendで、VSソリューション(プロジェクト)ファイルをそのまま開き、XAMLを直接作成・編集することもできる。

WPFにおける分離コードを実現するためには、従来のWindowsフォームや、ASP.NETアプリケーション(Webフォーム)と同様に、分離クラス(コードビハインド)と、.NET Framework 2.0からサポートされたパーシャル クラスが使用される。XAMLファイルから分離クラス(コードビハインド)ファイルを関連付けるためには、XAML上で「x:Class」、「x:Subclass」、「x:ClassModifier?」などのディレクティブを定義する。なお、「x:Code」ディレクティブを定義すればXAML上にインラインでコードを実装することもできる。また、分離クラス(コードビハインド)ファイルから、XAMLファイルで生成したCLRオブジェクトにアクセスするには、「x:Name」ディレクティブ、または、Name属性を付与する必要がある。これらのディレクティブについては、「ディレクティブ」を参照のこと。

WPFにおけるビルド アクション

中間生成物であるパーシャル クラスは、ビルド アクション = Pageに設定されている(WindowやPageの)XAMLから生成され、分離クラス(コードビハインド)と統合されてビルドされる。

プログラム部分は、VB・C#を使用して実装

XAMLの記述方法

テキスト ベースの記述、デザイナを使用した記述が可能。

が可能。

が可能 。

通常は、VSを利用すればIDE機能としては事足りるが、Expression Blendでしかできない「デザイナ向け機能」を使用する場合は、Expression Blendを使用する。

プログラムの実装方法

WPF / Silverlightアプリケーション開発は、C#、VBなどの、標準的なプログラム言語を使用できるため開発要員を確保しやすい。また、VSデザイナを使用すれば、Windowsフォーム、ASP.NETアプリケーション(Webフォーム)と同様な開発が可能であることが分かる。また、WPF / Silverlightの双方で、ランタイムは異なるもののUIサブシステムのフレームワークの基本的な構造については同じものを共用できる。このUIサブシステムのフレームワークを習得すれば、双方の開発が可能となる(ただし、双方の違いは理解しておく必要がある。「Silverlightについて」を参照)。ただし、高度な処理を実装する場合や、トラブルシュートを行う場合は、UIサブシステムのフレームワーク、XAMLの読み方・書き方をある程度は知っておく必要がある。しかし、これらの仕様は大きく、複雑で把握するのに時間がかかる。この点に関して、WPF / Silverlightアプリケーションの開発は、敷居が高いと言える。

WPFについて

WPFの機能

サポートする機能

相互運用性

P/InvokeやRCW呼出しなどWin32連携技術を使用した相互運用が可能である。また、WindowsFormsHost?、Hwndhost を使用することで、WindowsフォームやActiveXのUIコントロールを使用することも可能である(パフォーマンス的には不利)。

例えば、下記は、System.Windows.Forms名前空間のDataGrid?コントロールをホストするWPFの例である。

<Window x:Class="WpfApplication1.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"  
  Title="HostingWfInWpf" Height="150" Width="300" Loaded="Window_Loaded">
  <Canvas>
    <WindowsFormsHost Name="windowsFormsHost1" Height="100" Width="275">
      <wf:DataGrid x:Name="dataGrid1"/>
    </WindowsFormsHost>
  </Canvas>
</Window>

機能の制限事項

注意事項

WPFのアーキテクチャ

クラス階層

要素ツリー

WPFプロパティ システム

データ バインディング

ルーティング イベント

WPFのコントロール

標準コントロール

ユーザ コントロール

XBAPについて

Silverlightについて

機能

セキュリティ

XAMLの書き方

名前空間

言語機能

ディレクティブ

マークアップ拡張

プロパティの設定方法

プロパティ属性構文

プロパティ要素構文

型コンバータ

コンテンツ構文

Contentプロパティ

Itemsプロパティ

リソース

リソースの定義

リソースの定義と参照

データ バインディング

データ バインディングの基礎

リソースとのデータ バインディング

レイアウト

レイアウトのプロパティ

パネルの種類と使い方

スタイルとテンプレート

スタイル

テンプレート

トリガ

プロパティ トリガ

データ トリガ

イベント トリガ

その他

ビルティング ブロック クラス

Applicationオブジェクト

Window画面

ナビゲーション フレームワーク

Win32ダイアログ

入力支援

メニュー・タスクバーとコマンド

ツールチップ

IME制御

デザイナ向け機能

様々なシェイプ

グラデーション

トランスフォーム処理

アニメーション

MVVMデザイン パターン

バリデーション

単項目のバリデーション

一覧のバリデーション

フォーカス制御

注意事項

略語一覧

項番略語正式名称
1UIUser Interface
2D&DDrag and Drop
3GDIGraphics Device Interface
4GPUGraphics Processing Unit
5JSJavaScript
6AjaxAsynchronous JavaScript + XML
7JSONJavaScript Object Notation
8RESTRepresentational State Transfer
9POXPlain Old XML
10SEOSearch Engine Optimization
11VSVisual Studio
12VBVisual Basic
13IEInternet Explorer
14WMVWindows Media Video
15WMAWindows Media Audio
16CLRCommon Language Runtime
17DLRDynamic Language Runtime
18CASCode Access Security
19RCWRuntime Callable Wrapper
20WPFWindows Presentation Foundation
21WPF/EWindows Presentation Foundation / Everywhere
22XAMLeXtensible Application Markup Language
23BAMLBinary Application Markup Language
24XBAPXAML Base Application
25MVVMModel - View - View Model

参考資料


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS