&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>



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