FrameworkContentElement.Resources Свойство

Определение

Возвращает или задает текущий локально определенный словарь ресурсов.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.

Атрибуты

Примеры

В следующем примере создается коллекция Resources для корневого элемента FlowDocument.The following example establishes a Resources collection on a FlowDocument root element. FlowDocument является типичным выбором, так как это один из нескольких FrameworkContentElement классов, имеющих смысл в качестве корневого элемента, а ресурсы обычно хранятся в корне страницы или на более высоких уровнях, например в приложении.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>

Комментарии

Словари ресурсов, которые могут быть определены полностью или частично в Язык XAMLExtensible Application Markup Language (XAML), обычно создаются как элементы свойства и обычно находятся в корневом элементе для любой отдельной страницы или приложения.Resource dictionaries that can be defined completely or partially in Язык XAMLExtensible 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. При доступе к ресурсам с помощью кода он, по сути, эквивалентен ссылке DynamicResource , созданной из XAMLXAML.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. Свойство Resources является устанавливаемым для поддержки сценария полной замены коллекции ресурсов элемента на новую или другую ResourceDictionary.The 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 по-прежнему указывается явным образом как элемент, если вы представляете Объединенный словарь, в этом случае для этого ResourceDictionaryобычно не дочерние элементы.One 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.

Использование элемента свойства XAMLXAML Property Element Usage

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

Значения XAMLXAML Values

онеорморересаурцеелементсoneOrMoreResourceElements
Один или несколько объектных элементов, каждый из которых определяет ресурс.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.

Применяется к

Дополнительно