英語で読む

次の方法で共有


FrameworkElement.Resources プロパティ

定義

ローカルで定義されたリソース ディクショナリを取得または設定します。

C#
public System.Windows.ResourceDictionary Resources { get; set; }
C#
[System.Windows.Markup.Ambient]
public System.Windows.ResourceDictionary Resources { get; set; }

プロパティ値

ローカルで定義された現在のリソース ディクショナリ。各リソースにはキーでアクセスできます。

属性

注釈

拡張アプリケーション マークアップ言語 (XAML) で完全または部分的に定義できるリソース ディクショナリは、通常、プロパティ要素として作成され、通常は個々のページまたはアプリケーションのルート要素にあります。 リソース ディクショナリをこのレベルに配置すると、ページ内の個々の子要素から (またはアプリケーションの場合は任意のページから) 簡単に見つけることができます。 ほとんどのアプリケーション シナリオでは、スタイルをリソース ディクショナリ内のオブジェクト要素として定義するか、スタイル リソース全体を自己完結型にできるように外部リソースとして定義することをお勧めします (このアプローチは、編集する必要がある物理ファイルを分離することで、デザイナーの責任と開発者の責任を分離するのに役立ちます)。

このプロパティは、その要素内で直接宣言されたリソース ディクショナリのみを返します。 これは、子要素が各親要素で定義されている任意のリソースにアクセスし、再帰的に上方向に検索できる実際のリソース参照プロセスとは異なります。

リソースはコレクション内からコードで参照することもできますが、XAML で作成されたリソースは、ディクショナリを宣言する 要素によって が発生するまで Loaded は、間違いなくアクセスできないことに注意してください。 実際、リソースは非同期的に解析され、イベントさえも Loaded XAML で定義されたリソースを参照できることを保証するわけではありません。 このため、通常は、実行時コードの一部として、またはスタイルや属性値のリソース拡張参照などの他の XAML 手法を使用して、XAML 定義リソースにのみアクセスする必要があります。 コードを使用してリソースにアクセスする場合、これは基本的に XAML から作成された DynamicResource 参照と同じです。

基になる ResourceDictionary は、コードを使用してコレクション内からリソースを追加、削除、またはクエリするために必要なメソッドをサポートしています。 プロパティは Resources 、要素のリソース コレクションを新しい または異なる ResourceDictionaryに完全に置き換えるシナリオをサポートするように設定できます。

示されている XAML 構文には、 の ResourceDictionary要素が含まれていないことに注意してください。 これは、暗黙的なコレクション構文の例です。コレクション要素を表すタグは省略できます。 代わりに、コレクションに項目として追加される要素を指定します。 暗黙的なコレクションと XAML の詳細については、「 XAML 構文の詳細」を参照してください。 が要素として明示的に指定されているケース ResourceDictionary の 1 つは、マージされたディクショナリを導入する場合です。その場合、通常はその ResourceDictionaryの子要素はありません。 詳細については、「 マージされたリソース ディクショナリ」を参照してください。

XAML プロパティ要素の使用

<object>  
  <object.Resources>  
    oneOrMoreResourceElements  
  </object.Resources>  
</object>  

XAML 値

oneOrMoreResourceElements
リソースを定義する 1 つ以上のオブジェクト要素。 各内の各 ResourceDictionary リソース プロパティ要素には 、x:Key ディレクティブの一意の値が必要です。これは、 から ResourceDictionary値を取得するときに一意のキーとして機能します。

適用対象

製品 バージョン
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

こちらもご覧ください