カスタム リソース参照実装から取得されたリソースへの参照を評価することによって、任意の XAML 属性の値を提供します。 リソース参照は、 CustomXamlResourceLoader クラスの 実装によって実行されます。
XAML 属性の使用方法
<object property="{CustomResource key}" .../>
XAML 値
任期 | Description |
---|---|
キー | 要求されたリソースのキー。 キーの最初の割り当て方法は、現在使用するために登録されている CustomXamlResourceLoader クラスの実装に固有です。 |
注釈
CustomResource は、カスタム リソース リポジトリ内の他の場所で定義されている値を取得するための手法です。 この手法は比較的高度であり、ほとんどの Windows ランタイム アプリ シナリオでは使用されません。
CustomResource をリソース ディクショナリに解決する方法については、このトピックでは説明しません。これは、CustomXamlResourceLoader の実装方法によって大きく異なる可能性があるためです。
CustomXamlResourceLoader 実装の GetResource メソッドは、マークアップで{CustomResource}
使用が発生するたびに、Windows ランタイム XAML パーサーによって呼び出されます。
GetResource に渡される resourceId はキー引数から取得され、その他の入力パラメーターはコンテキスト (使用が適用されるプロパティなど) から取得されます。
{CustomResource}
の使用は既定では機能しません (GetResource の基本実装は不完全です)。 有効な {CustomResource}
参照を作成するには、次の各手順を実行する必要があります。
- CustomXamlResourceLoader からカスタム クラスを派生させ、GetResource メソッドをオーバーライドします。 実装では base を呼び出さないでください。
- 初期化ロジックでクラスを参照するように CustomXamlResourceLoader.Current を設定します。 これは、
{CustomResource}
拡張機能の使用を含むページ レベルの XAML が読み込まれる前に発生する必要があります。 CustomXamlResourceLoader.Current を設定する場所の一例として、App.xaml のコードビハインドテンプレートで自動生成される Application サブクラスのコンストラクターがあります。 - これで、アプリがページとして読み込む XAML で、または XAML リソース ディクショナリ内から
{CustomResource}
拡張機能を使用できるようになりました。
CustomResource はマークアップ拡張機能です。 マークアップ拡張は通常、リテラル値またはハンドラー名以外の属性値をエスケープする必要があり、特定の型またはプロパティに型コンバーターを配置するよりもグローバルな要件である場合に実装されます。 XAML のすべてのマークアップ拡張では、属性構文で "{" 文字と "}" 文字が使用されます。これは、マークアップ拡張機能が属性を処理する必要があることを XAML プロセッサが認識する規則です。
関連トピック
Windows developer