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

いずれかの値を提供XAMLXAML定義済みのリソースへの参照を検索することで、プロパティの属性。Provides a value for any XAMLXAML property attribute by looking up a reference to an already defined resource. そのリソースの検索動作が読み込み時の検索は、現在のマークアップから以前に読み込まれたリソースは検索に似ていますXAMLXAMLページおよびその他のアプリケーションのソースととしてそのリソースの値が生成されます、実行時のオブジェクトのプロパティの値です。Lookup behavior for that resource is analogous to load-time lookup, which will look for resources that were previously loaded from the markup of the current XAMLXAML page as well as other application sources, and will generate that resource value as the property value in the run-time objects.

XAML 属性の使用方法XAML Attribute Usage

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

XAML オブジェクト要素の使用方法XAML Object Element Usage

<object>  
  <object.property>  
<StaticResource ResourceKey="key" .../>  
  </object.property>  
</object>  

XAML 値XAML Values

key 要求されたリソースのキー。The key for the requested resource. このキーはによって最初に割り当てられた、 X:key ディレクティブリソースのマークアップでは、作成されたまたはが指定されているかどうか、keyパラメーターを呼び出すときにResourceDictionary.Addリソースは、コードで作成した場合。This key was initially assigned by the x:Key Directive if a resource was created in markup, or was provided as the key parameter when calling ResourceDictionary.Add if the resource was created in code.

RemarksRemarks

重要

AStaticResource定義されているリソースへの前方参照を読み取ろうとしないで内で構文的にさらに、XAMLXAMLファイル。A StaticResource must not attempt to make a forward reference to a resource that is defined lexically further within the XAMLXAML file. 操作がサポートされていないと、前方参照しようとしていますが、読み込み時間のパフォーマンスの低下ような参照が失敗しない場合でも発生時に、内部ハッシュ テーブルを表す、ResourceDictionaryが検索されます。Attempting to do so is not supported, and even if such a reference does not fail, attempting the forward reference will incur a load time performance penalty when the internal hash tables representing a ResourceDictionary are searched. 最良の結果を前方参照を回避するように、リソース ディクショナリの構成を調整します。For best results, adjust the composition of your resource dictionaries such that forward references can be avoided. 前方参照を回避できない場合は、使用DynamicResource マークアップ拡張機能代わりにします。If you cannot avoid a forward reference, use DynamicResource Markup Extension instead.

指定したResourceKeyで識別される、既存のリソースに対応する必要があります、 X:key ディレクティブページ、アプリケーション、使用可能なコントロールのテーマと外部のリソース、またはシステム リソースのいくつかのレベル。The specified ResourceKey should correspond to an existing resource, identified with an x:Key Directive at some level in your page, application, the available control themes and external resources, or system resources. リソース検索は、その順序で発生します。The resource lookup occurs in that order. 静的および動的なリソースのリソースの検索の動作の詳細については、次を参照してください。 XAML リソースします。For more information about resource lookup behavior for static and dynamic resources, see XAML Resources.

リソース キーは、任意の文字列で定義されている、 XamlName の文法します。A resource key can be any string defined in the XamlName Grammar. リソース キーがなど、他のオブジェクトの種類を指定もできます、Typeします。A resource key can also be other object types, such as a Type. ATypeキーがどのコントロール スタイルを設定できます、テーマによって、暗黙的なスタイルのキーを使用する基本的な。A Type key is fundamental to how controls can be styled by themes, through an implicit style key. 詳しくは、「コントロールの作成の概要」を参照してください。For more information, see Control Authoring Overview.

リソースを参照するための代替の宣言型の手段は、 DynamicResource マークアップ拡張機能します。The alternative declarative means of referencing a resource is as a DynamicResource Markup Extension.

属性構文は、このマークアップ拡張機能で使用される最も一般的な構文です。Attribute syntax is the most common syntax used with this markup extension. StaticResource 識別子文字列の後に設定される文字列トークンは、基になる ResourceKey 拡張クラスの StaticResourceExtension 値として割り当てられます。The string token provided after the StaticResource identifier string is assigned as the ResourceKey value of the underlying StaticResourceExtension extension class.

StaticResource オブジェクト要素構文で使用できます。StaticResource can be used in object element syntax. この場合は、値を指定する、ResourceKeyプロパティが必要です。In this case, specifying the value of the ResourceKey property is required.

StaticResource は、ResourceKey プロパティをプロパティおよび値のペアとして指定する詳細出力属性使用でも使用できます。StaticResource can also be used in a verbose attribute usage that specifies the ResourceKey property as a property=value pair:

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

詳細出力の使用は、複数の設定可能プロパティを持つ拡張機能や、一部のプロパティがオプションである場合に役立ちます。The verbose usage is often useful for extensions that have more than one settable property, or if some properties are optional. StaticResource には、必須の設定可能プロパティが 1 つしか存在しないため、このような詳細出力の使用は一般的ではありません。Because StaticResource has only one settable property, which is required, this verbose usage is not typical.

WPFWPF XAMLXAMLプロセッサの実装でこのマークアップ拡張機能の処理が定義されている、StaticResourceExtensionクラス。In the WPFWPF XAMLXAML processor implementation, the handling for this markup extension is defined by the StaticResourceExtension class.

StaticResource はマークアップ拡張機能です。StaticResource is a markup extension. 一般にマークアップ拡張機能を実装するのは、属性値をリテラル値やハンドラー名以外にエスケープする要件が存在し、その要件の適用範囲がグローバルで、特定の型やプロパティに型コンバーターを適用するだけにとどまらない場合です。Markup extensions are typically implemented when there is a requirement to escape attribute values to be other than literal values or handler names, and the requirement is more global than just putting type converters on certain types or properties. すべてのマークアップ拡張機能でXAMLXAMLを使用して、{および} される規則は、それぞれの属性構文内の文字をXAMLXAMLプロセッサを認識するマークアップ拡張機能が、属性を処理する必要があります。All markup extensions in XAMLXAML use the { and } characters in their attribute syntax, which is the convention by which a XAMLXAML processor recognizes that a markup extension must process the attribute. 詳細については、次を参照してください。マークアップ拡張機能と WPF XAMLします。For more information, see Markup Extensions and WPF XAML.

関連項目See also