staticって便利ですよね。一度その便利さを知ってしまったら手放せない、static。名前の響きもいい、static。ユーティリティ的なクラスを作って、staticな関数をいれたりとか、誰もが通る道なのではないかと思います。乱用は良くないけど!
さて、Fuseでもstaticな変数を設定することができます。それがux:Globalです。
###ux:Global
ux:Global
はひとつの属性で、この属性がつけられた要素は、staticでglobalなリソースになります。早速使い方を見てみましょう。
<type ux:Global="resource_key" [ux:Value="value"] ... />
type
はUXマークアップで使用可能な任意の要素で、resource_key
の部分に参照する際に使用するkeyを指定します。
type
にfloat4やintのような値をもつ型を指定した場合は、ux:Value
を同じ要素につけることが必須となります。
###サンプル
サンプルというか、なんというか、Fuseが元々定義しているリソースもあります。例えばred
やblue
などがそうです。下記のように指定すれば、カラーコードを取得することができますね。
<Panel Color="Blue" />
自分でグローバルを定義するときは、下記のように指定します。
<float4 ux:Global="MyProject.WarmBlue" ux:Value="#18f" />
これを参照するときは、
<Rectangle>
<Stroke Width="3" Color="MyProject.WarmBlue" />
</Rectangle>
このようにすれば、上で定義した、ux:Value
の値、つまり#18f
を指定することができるというわけですね。
ここで注意したいのが、名前の付け方です。名前の重複などを避けるため、プロジェクトの名前などを使って、適切にグルーピングするようにしてください。また、ux:Global
で指定した値はコンパイル時に解決され、動的に変更することはできませんので注意してください。
中身うっすいですが以上!!