FrameworkContentElement.Resources プロパティ

定義

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

public:
 property System::Windows::ResourceDictionary ^ Resources { System::Windows::ResourceDictionary ^ get(); void set(System::Windows::ResourceDictionary ^ value); };
public System.Windows.ResourceDictionary Resources { get; set; }
[System.Windows.Markup.Ambient]
public System.Windows.ResourceDictionary Resources { get; set; }
member this.Resources : System.Windows.ResourceDictionary with get, set
[<System.Windows.Markup.Ambient>]
member this.Resources : System.Windows.ResourceDictionary with get, set
Public Property Resources As ResourceDictionary

プロパティ値

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

属性

次の例では、ルート要素に Resources コレクションを FlowDocument 設定します。 FlowDocument これは、ルート要素として意味のある数少ない FrameworkContentElement クラスの 1 つであり、リソースは通常、ページ ルートまたはアプリケーションなどのより高いレベルに格納されるため、一般的な選択肢です。

<FlowDocument
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Class=" SDKSample.Page2">
  <FlowDocument.Resources>
    <Style TargetType="{x:Type Paragraph}" x:Key="BluePara">
      <Setter Property="Background" Value="Blue"/>
      <Setter Property="FontSize" Value="18"/>
      <Setter Property="Foreground" Value="LightBlue"/>
      <Setter Property="FontFamily" Value="Trebuchet MS"/>
    </Style>
  </FlowDocument.Resources>
  <Paragraph Style="{StaticResource BluePara}">Lorem ipsum etc.</Paragraph>
</FlowDocument>

注釈

拡張アプリケーション マークアップ言語 (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値を取得するときに一意のキーとして機能します。

適用対象

こちらもご覧ください