この記事は翻訳者によって翻訳されたものです。 記事の文章にポインターを重ねると、原文のテキストが表示されます。
訳文
原文
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

StaticResource のマークアップ拡張機能

Silverlight

定義済みのリソースへの参照を評価することによって、任意の XAML 属性の値を指定します。 リソースは ResourceDictionary で定義され、StaticResource の使用では ResourceDictionary 内のリソースのキーが参照されます。

<object property="{StaticResource key}" .../>

key

要求したリソースのキー。 このキーは、XAML ResourceDictionary で定義されているリソースの x:Key 属性によって最初に割り当てられたものです。 リソース キーには、XamlName の文法で定義されている任意の文字列を指定できます。

StaticResource は、リソース ディクショナリの別の場所で定義されている値を取得するための手法です。 このような値は、複数のインスタンスとプロパティの値で使用するため、あるいはリソース ディクショナリが XAML パッケージまたは分解技術の一部であるため、リソース ディクショナリに配置される場合があります。 XAML パッケージ テクニックの例は、コントロールの generic.xaml "theme" ディクショナリです。 別の例は、マージされたリソース ディクショナリです。

どのように StaticResource をリソース ディクショナリに解決するかは、このトピックでは説明していません。これは、参照とリソースがテンプレート内に存在するかどうか、マージされたリソース ディクショナリが使用されるかどうかなど、さまざまな要因によって方法が異なるためです。 リソースを定義して ResourceDictionary を適切に使用する方法の詳細やサンプル コードについては、「リソース ディクショナリ」を参照してください。

重要 : 重要 :

StaticResource では、XAML ファイル内の後方で語彙的に定義されているリソースに対する前方参照を行わないようにします。 この操作はサポートされていません。前方参照を試行すると、参照に失敗しなくても、ResourceDictionary を示す内部ハッシュ テーブルが検索されるために、読み込み時パフォーマンスが低下します。 リソース ディクショナリの構成を調整して、前方参照を回避できるようにすることをお勧めします。

解決できないキーに StaticResource を指定しようとすると、XAML の解析例外が発生します。

Silverlight の XAML プロセッサの実装には、バッキング クラス表現はありません。 StaticResource は、XAML 専用であり、{} 構文を使用して、コンテンツをマークアップ拡張で処理する必要があることを XAML プロセッサに示します。 同等のコードでは、個々の ResourceDictionary のクエリを必要とし、Contains API が使用されます。

イベント属性には、StaticResource は使用できません。 また、イベント ハンドラーをリソースとして宣言することはできません。 イベント属性値として参照されるイベント ハンドラーは、XAML ページの分離コードを提供する部分クラスで定義されたそれぞれのメンバー名に基づいて参照され、リソースはここでは関与しません。

StaticResource はマークアップ拡張機能です。 一般にマークアップ拡張機能を実装するのは、属性値をリテラル値やハンドラー名以外にエスケープする要件が存在し、その要件の適用範囲がグローバルで、特定の型やプロパティに型コンバーターを適用するだけにとどまらない場合です。 XAML のすべてのマークアップ拡張機能では、それぞれの属性構文で { と } の 2 つの記号を使用します。これは規約であり、これに従って XAML プロセッサは、マークアップ拡張機能で属性を処理する必要があることを認識します。

コミュニティの追加

表示:
© 2015 Microsoft