&tag(XAML); *目次 [#e529b795] #contents *参考情報 [#tfb8f37c] *名前空間 [#l0e68c8a] **基本 [#p71fb4ac] -[[WPFとSilverlightをまとめて習得しよう − @IT:http://www.atmarkit.co.jp/fdotnet/vblab/uiframework_01/uiframework_01_01.html]]が参考になる。 -XAMLファイルの先頭は次のような行を含んでいる。 #pre{{ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" }} -1行目はWPF名前空間を規定の名前空間(プレフィックスなし)として使用することを宣言している。これによりWindowやButtonタグをXMLファイルのなかで使うことができる。 -2行目はXAMLの言語機能をxプレフィックスとして使うことを宣言している。x:Nameや、x:Class属性がこれに該当する。WPFフレームワーク関係なしの共通機能がここで定義されている。 **x:Name [#w1de3151] -x:Nameはインスタンスの名前を指定する機能。 -WPFの基本クラスにはNameプロパティが存在しておりNameプロパティを設定する=x:Nameを指定することと同じ。 *Tips [#o17c3303] **他プロジェクトのクラスを参照する [#j7b9745c] -[参照]→[追加]でプロジェクト参照を追加する。参照する側と参照される側のプロジェクトで、対象のフレームワークはあわせておく。 -さらにxamlでassemblyを追加する。 #pre{{ <Window xmlns:view="clr-namespace:Sample.View;assembly=SampleLib"> }} **条件によってコントロールの表示・非表示を切り替える [#f16e7534] -[[BooleanToVisibilityConverter クラス (System.Windows.Controls):http://msdn.microsoft.com/ja-jp/library/system.windows.controls.booleantovisibilityconverter(v=vs.80).aspx]]を使用して、ControlのVisibilityにバインドする。 -サンプル #pre{{ <Window.Resources> <BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter"/> </Window.Resources> <TextBox Visibility={Binding IsValid, Mode=OneWay,Converter={StaticResource booleanToVisibilityConverter} }"/> }} **定数を定義して使う [#g1339fd2] XAML中で定数を定義し、幅やマージンなどに一括して指定したい場合次のようにする。 -Systemをヘッダー部分でインポート。 xmlns:sys="clr-namespace:System;assembly=mscorlib" -リソースで定数を定義 #pre{{ <Window.Resources> <sys:Double x:Key="theWidth">48</sys:Double> <Window.Resources> }} -StaticResourceで参照する。 <Button Width="{StaticResource theWidth}">OK</Button>