FrameworkContentElement.Resources FrameworkContentElement.Resources FrameworkContentElement.Resources FrameworkContentElement.Resources Property

定義

ローカルで定義された現在のリソース ディクショナリを取得または設定します。Gets or sets the current locally-defined resource dictionary.

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

プロパティ値

ローカルで定義された現在のリソース。The current locally-defined resources. これはリソース ディクショナリです。ディクショナリ内のリソースにはキーでアクセスします。This is a dictionary of resources, where resources within the dictionary are accessed by key.

次の例ではResourcesFlowDocumentルート要素に対してコレクションを確立します。The following example establishes a Resources collection on a FlowDocument root element. FlowDocumentは、ルート要素として意味を持ついくつFrameworkContentElementかのクラスの1つであるため、一般的な選択肢です。リソースは一般に、ページルートに格納されるか、またはアプリケーション内のなど、より高いレベルで格納されます。FlowDocument is a typical choice because it is one of the few FrameworkContentElement classes that make sense as a root element, and resources are generally stored at the page root or at even higher levels such as in the application.

<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>

注釈

完全または部分的にExtensible Application Markup Language (XAML)Extensible Application Markup Language (XAML)定義できるリソースディクショナリは、通常、プロパティ要素として作成され、通常は個々のページまたはアプリケーションのルート要素に配置されます。Resource dictionaries that can be defined completely or partially in Extensible Application Markup Language (XAML)Extensible Application Markup Language (XAML) are typically created as a property element, and are typically on the root element for any individual page or for the application. リソースディクショナリをこのレベルに配置すると、ページ内の個々の子要素 (または、アプリケーションケースでは任意のページ) から簡単に検索できるようになります。Placing the resource dictionary at this level makes it easier to find from individual child elements in the page (or from any page, in the application case). ほとんどのアプリケーションシナリオでは、スタイルをリソースディクショナリ内のオブジェクト要素として定義するか、または外部リソースとして定義して、スタイルリソース全体を自己完結させることをお勧めします (この方法は、別のデザイナーに役立ちます)。編集する必要がある物理ファイルを分離することによる、開発者の責任からの役割。In most application scenarios, we recommend that styles be defined as object elements within a resource dictionary, or be defined as external resources so that the entire style resource can be self-contained (this approach helps separate designer responsibilities from developer responsibilities by separating the physical files that need to be edited).

このプロパティは、その要素内で直接宣言されたリソースディクショナリだけを返すことに注意してください。Note that this property returns only the resource dictionary declared directly within that element. これは、実際のリソース参照プロセスとは異なります。子要素は、各親要素で定義されている任意のリソースにアクセスして、再帰的に検索します。This is different than the actual resource lookup process, where a child element can access any of the resources defined in each parent element, searching recursively upwards.

リソースは、コレクション内のコードによって参照することもできますが、でXAMLXAML作成されたリソースは、 Loadedディクショナリを宣言する要素によってが生成されるまでは確実にアクセスできないことに注意してください。Resources can also be referenced by code from within the collection, but be aware that resources created in XAMLXAML will definitely not be accessible until after Loaded is raised by the element that declares the dictionary. 実際、リソースは非同期的に解析され、定義LoadedされたリソースをXAMLXAML参照できることが保証されるとは限りません。In fact, resources are parsed asynchronously, and not even the Loaded event is an assurance that you can reference a XAMLXAML defined resource. このため、通常、定義されXAMLXAMLたリソースには、ランタイムコードの一部として、 XAMLXAMLまたは属性値のスタイルやリソース拡張機能の参照などの他の手法を使用してアクセスする必要があります。For this reason you should generally only access XAMLXAML defined resources as part of run-time code, or through other XAMLXAML techniques such as styles or resource extension references for attribute values. コードを使用してリソースにアクセスするとき、基本的には、からXAMLXAML作成されたdynamicresource参照に相当します。When you access resources through code, it is essentially equivalent to a DynamicResource reference made from XAMLXAML.

基にResourceDictionaryなるは、コードを使用して、コレクション内のリソースの追加、削除、またはクエリを実行するために必要なメソッドをサポートしています。The underlying ResourceDictionary supports the methods required to add, remove, or query resources from within the collection by using code. プロパティは、要素のリソースコレクションを新しいまたは別ResourceDictionaryのものに完全に置き換えるシナリオをサポートするために設定できます。 ResourcesThe Resources property is settable to support the scenario of completely replacing the resources collection of an element to be a new or different ResourceDictionary.

表示されるXAMLXAML構文には、 ResourceDictionaryの要素が含まれていないことに注意してください。Notice that the XAMLXAML syntax shown does not include an element for the ResourceDictionary. これは、暗黙的なコレクション構文の例です。コレクション要素を表すタグを省略できます。This is an example of implicit collection syntax; a tag representing the collection element can be omitted. コレクションに項目として追加された要素が代わりに指定されます。The elements that are added as items to the collection are specified instead. 暗黙のコレクションとXAMLXAMLの詳細については、「 XAML 構文の詳細」を参照してください。For more information about implicit collections and XAMLXAML, see XAML Syntax In Detail. が要素として明示的に指定されている場合、マージされたディクショナリを導入すると、そのようResourceDictionaryな子要素は通常ありません。 ResourceDictionaryOne case where a ResourceDictionary is still specified explicitly as an element is if you are introducing a merged dictionary, in which case there are typically no child elements for that ResourceDictionary. 詳細については、「マージされたリソースディクショナリ」を参照してください。For details, see Merged Resource Dictionaries.

XAML プロパティ要素の使用XAML Property Element Usage

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

XAML 値XAML Values

oneOrMoreResourceElementsoneOrMoreResourceElements
1つ以上のオブジェクト要素。それぞれがリソースを定義します。One or more object elements, each of which defines a resource. ResourceDictionaryの各リソースプロパティ要素は、 x:Key ディレクティブに対して一意の値を持つ必要があります。これは、 ResourceDictionaryから値を取得するときに一意のキーとして機能します。Each resource property element within each ResourceDictionary must have a unique value for the x:Key Directive, which serves as the unique key when values are retrieved from the ResourceDictionary.

適用対象

こちらもご覧ください