[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

...工事中...
-[[戻る>WPF/Silverlight]]

* 目次 [#p4d7e1a8]
#contents

*概要 [#r7767a18]
XAMLについて。

参考
XAMLは、

-WPF は死んだのか?  Moonmile Solutions Blog~
http://www.moonmile.net/blog/archives/6156
-WPF で XAML で書く。 
-Siverlight を XAML で書く。
-Windows Phone 8.1 アプリ
-Windows Store App
-Xamarin.Forms
-WFのワークフロー定義

*WPF/Silverlight [#z122358b]
などで使用されている。

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

-[[WPF]]
-[[Silverlight]]
以下では、WPF / Siverlight 開発におけるXAMLの利用方法を説明する。

**特徴 [#w6f7a746]
WPF / Silverlightは、高速なグラフィックスではなく、
-メディア リッチ:音声・動画の組み合わせ
-インタラクティビティー:画像や音声などによって示される内容に応答する操作性
*詳細 [#ya0882a1]

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

***開発環境 [#w8b19d45]
WPF / Silverlight は、Visual Studio 2008以降や、Expression Blendを使用して開発が可能。Expression Blendはデザイナ向けツールであり、VSに無い以下の機能を有している。
-GUIを使用した図形オブジェクトの作成・編集
-GUIを使用したグラデーションの作成・編集
-GUIを使用したアニメーションの作成・編集
-,etc.
**XAMLの書き方 [#a3e22e7c]
XAMLは、XMLをベースとしており、~
XAMLの各要素からCLRオブジェクトをインスタンス化し、~
「要素ツリー」を構築できる。

***開発方法 [#jbe598eb]
WPF / Silverlightでは、P層のUI部分を(HTMLのようなXMLベースのマークアップ言語である)XAMLを使用して記述し、イベントなどのプログラム部分はC#、VBを使用して開発することができる(Sliverlight 1.0はJavaScriptのみ対応)。また、XAMLは、XMLをベースとしており各要素からツリー構造のCLRオブジェクトをインスタンス化できる。このため、XAMLは、「ツリー構造のCLRオブジェクトをインスタンス化するためのマークアップ言語」と説明することも可能である 。XAMLによるCLRオブジェクト生成の例は、以下を参考にできる。
ここでは、WPFのXAMLの書き方を通して、
-XAMLの基礎
-XAMLによるUI設計方法
-XAMLによるUI開発方法

-連載:WPF入門:第2回 WPFとXAMLの関係とは? XAMLの基礎を学ぶ - @IT~
--http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_02/introwpf_02_01.html
--http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_02/introwpf_02_02.html
--http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_02/introwpf_02_03.html
を説明する。

**開発方法 [#g62a273d]
WPF / Silverlightアプリケーションの開発には以下のような特徴がある。
あまりに内容が多いので、2分割にしました。

-UI部分とプログラム部分を分離して記述・実装できる。
-UI部分のXAMLは、VS・Expression Blendなどのツールを使用して記述できる。
***[[XAMLの書き方(1)]] [#d37643cd]
***[[XAMLの書き方(2)]] [#gcfca4e2]

プログラム部分は、VB・C#を使用して実装できる。
**XAMLのサンプル [#t1544b9b]

***UI部分とプログラム部分を分離して記述・実装 [#eb070dc4]
UI部分にXAML、プログラム部分にCLR言語と、UI・プログラム部分を分離して記述・実装できるので、Webアプリケーションと同様に画面デザイン(画面モックアップ開発)とプログラム開発の分業が可能である。例えば、UI開発ツールに特化したExpression Blendで、VSソリューション(プロジェクト)ファイルをそのまま開き、XAMLを直接作成・編集することもできる。
***WPFのサンプル [#n72def8e]
-SampleProgram/UISubsystem/WPF at master · OpenTouryoProject/SampleProgram~
https://github.com/OpenTouryoProject/SampleProgram/tree/master/UISubsystem/WPF

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属性を付与する必要がある。
***... [#y81c2fd9]

これらのディレクティブについては、「[[ディレクティブ>#cd4daa01]]」を参照のこと。
*参考 [#h7fea6b5]
-WPF は死んだのか?  Moonmile Solutions Blog~
http://www.moonmile.net/blog/archives/6156

-WPF における分離コードと XAML~
https://msdn.microsoft.com/ja-jp/library/aa970568.aspx
**@IT > Insider.NET [#ubdf4846]

*** [#b338c3aa]
-XAMLの基礎知識~
http://www.atmarkit.co.jp/fdotnet/basics/xaml_index/index.html
--第1回 Hello Worldとテキスト・エディタで始めるXAML~
http://www.atmarkit.co.jp/fdotnet/basics/xaml01/xaml01_01.html 
--第2回 XAMLとWPFの関係~
http://www.atmarkit.co.jp/fdotnet/basics/xaml02/xaml02_01.html 

**XAMLの基礎 [#s2db1c9f]

*WPFについて [#u20856d5]
***WPFのXAML [#g3aa77d9]
http://msdn.microsoft.com/ja-jp/library/ms747122.aspx

**WPFの機能 [#i739b5f5]
***サポートする機能 [#t4e8816f]
***機能の制限事項 [#na2d384b]
***注意事項 [#h510ff35]
-XAMLの概要(WPF)~
http://msdn.microsoft.com/ja-jp/library/ms752059.aspx
-XAML構文の詳細~
http://msdn.microsoft.com/ja-jp/library/ms788723.aspx
-WPFにおける分離コードとXAML~
http://msdn.microsoft.com/ja-jp/library/aa970568.aspx
-WPFにおけるXAMLとカスタム クラス~
http://msdn.microsoft.com/ja-jp/library/ms753379.aspx
-マークアップ拡張機能とWPF XAML~
http://msdn.microsoft.com/ja-jp/library/ms747254.aspx
-XAML名前空間およびWPF XAMLの名前空間の割り当て~
http://msdn.microsoft.com/ja-jp/library/ms747086.aspx
-WPF XAML名前スコープ~
http://msdn.microsoft.com/ja-jp/library/ms746659.aspx
-インライン スタイルおよびテンプレート~
http://msdn.microsoft.com/ja-jp/library/ms788725.aspx
-XAMLでの空白の処理~
http://msdn.microsoft.com/ja-jp/library/ms788746.aspx
-TypeConvertersおよびXAML~
http://msdn.microsoft.com/ja-jp/library/aa970913.aspx
-XML文字エンティティとXAML~
http://msdn.microsoft.com/ja-jp/library/ms748250.aspx
-XAML名前空間(x:)言語機能~
http://msdn.microsoft.com/ja-jp/library/ms753327.aspx

**WPFのアーキテクチャ [#j150ee22]
***クラス階層 [#d6c9e5d1]
***要素ツリー [#p05c4c4f]
***WPFプロパティ システム [#u00b87e5]
***データ バインディング [#dac6f2bf]
***ルーティング イベント [#m1474b2f]
--WPF XAML拡張機能~
http://msdn.microsoft.com/ja-jp/library/ms753379.aspx
---バインディングのマークアップ拡張機能~
http://msdn.microsoft.com/ja-jp/library/ms750413.aspx
---ColorConvertedBitmapのマークアップ拡張機能~
http://msdn.microsoft.com/ja-jp/library/ms742565.aspx
---ComponentResourceKeyのマークアップ拡張機能~
http://msdn.microsoft.com/ja-jp/library/ms753186.aspx
---DateTime XAML構文~
http://msdn.microsoft.com/ja-jp/library/dd631811.aspx
---DynamicResourceのマークアップ拡張機能~
http://msdn.microsoft.com/ja-jp/library/ms748942.aspx
---RelativeSourceのマークアップ拡張機能~
http://msdn.microsoft.com/ja-jp/library/ms743599.aspx
---StaticResourceのマークアップ拡張機能~
http://msdn.microsoft.com/ja-jp/library/ms750950.aspx
---TemplateBindingのマークアップ拡張機能~
http://msdn.microsoft.com/ja-jp/library/ms742882.aspx
---ThemeDictionaryのマークアップ拡張機能~
http://msdn.microsoft.com/ja-jp/library/ms752067.aspx
---PropertyPathのXAML構文~
http://msdn.microsoft.com/ja-jp/library/ms742451.aspx
---PresentationOptions:Freeze属性~
http://msdn.microsoft.com/ja-jp/library/aa970057.aspx

**WPFのコントロール [#zc4549e3]
***標準コントロール [#te4c8df4]
***ユーザ コントロール [#m9448a6a]
--マークアップの互換性(mc:)言語機能~
http://msdn.microsoft.com/ja-jp/library/ms753379.aspx
---mc:Ignorable属性~
http://msdn.microsoft.com/ja-jp/library/ms742451.aspx
---mc:ProcessContent属性~
http://msdn.microsoft.com/ja-jp/library/aa348259.aspx

*XBAPについて [#c964fcaa]
**セキュリティ [#v4049cb0]
**注意事項 [#rfd7c995]
----
Tags: [[:.NET開発]], [[:UIサブシステム]], [[:WPF/Silverlight, XAML]]

*Silverlightについて [#m890bbf8]
**機能 [#pf9c74f1]
**セキュリティ [#mc2c78c1]

*XAMLの書き方 [#a3e22e7c]
**名前空間 [#t16cd178]
**言語機能 [#n6cf5f58]
***ディレクティブ [#cd4daa01]
***マークアップ拡張 [#hc49ac25]
**プロパティの設定方法 [#s1a3f3e9]
***プロパティ属性構文 [#q550d6b3]
***プロパティ要素構文 [#fa957fd3]
***型コンバータ [#ea68ba77]
**コンテンツ構文 [#v6b58154]
***Contentプロパティ [#p8c8ba55]
***Itemsプロパティ [#gb58344b]
 
**リソース [#ea30adb6]
***リソースの定義 [#l529fcbc]
***リソースの定義と参照 [#e615c6b1]

**データ バインディング [#e915d7ec]
***データ バインディングの基礎 [#bbd76ce0]
***リソースとのデータ バインディング [#ac5a7f33]

**レイアウト [#s77734ce]
***レイアウトのプロパティ [#j27354fe]
***パネルの種類と使い方 [#v124ba4f]

**スタイルとテンプレート [#q002601b]
***スタイル [#fa989262]
***テンプレート [#bb58b780]

**トリガ [#bbe9b16b]
***プロパティ トリガ [#ce79c6df]
***データ トリガ [#i5478c0f]
***イベント トリガ [#mb5243c8]

*その他 [#a8b33d4f]
**ビルティング ブロック クラス [#y720ef3a]
***Applicationオブジェクト [#bbdb37e4]
***Window画面 [#v51c2bf3]
***ナビゲーション フレームワーク [#f6820b24]
***Win32ダイアログ [#i5cf4c80]

**入力支援 [#h12b43f1]
***メニュー・タスクバーとコマンド [#c6479c52]
***ツールチップ [#i36d28e8]
***IME制御 [#n5902de4]

**デザイナ向け機能 [#y6378ada]
***様々なシェイプ [#s897a95f]
***グラデーション [#rc7056eb]
***トランスフォーム処理 [#h9e7aefe]
***アニメーション [#d0b80558]

**MVVMデザイン パターン [#u05bda3c]
**バリデーション [#w1cd4016]
***単項目のバリデーション [#k0141195]
***一覧のバリデーション [#x358d4f2]
***フォーカス制御 [#we3801e7]
***注意事項 [#ae4315b1]

*略語一覧 [#pfc07c61]
|項番|略語|正式名称|h
|1|UI|User Interface|
|2|D&D|Drag and Drop|
|3|GDI|Graphics Device Interface|
|4|GPU|Graphics Processing Unit|
|5|JS|JavaScript|
|6|Ajax|Asynchronous JavaScript + XML|
|7|JSON|JavaScript Object Notation|
|8|REST|Representational State Transfer|
|9|POX|Plain Old XML|
|10|SEO|Search Engine Optimization|
|11|VS|Visual Studio|
|12|VB|Visual Basic|
|13|IE|Internet Explorer|
|14|WMV|Windows Media Video|
|15|WMA|Windows Media Audio|
|16|CLR|Common Language Runtime|
|17|DLR|Dynamic Language Runtime|
|18|CAS|Code Access Security|
|19|RCW|Runtime Callable Wrapper|
|20|WPF|Windows Presentation Foundation|
|21|WPF/E|Windows Presentation Foundation / Everywhere|
|22|XAML|eXtensible Application Markup Language|
|23|BAML|Binary Application Markup Language|
|24|XBAP|XAML Base Application|
|25|MVVM|Model - View - View Model|

*参考資料 [#k5788ffe]


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