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 классов, которые имеют смысл в качестве корневого элемента, а ресурсы обычно хранятся в корне страницы или на более высоких уровнях, таких как в приложении.

<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, таких как стили или ссылки на расширения ресурсов для значений атрибутов. Когда вы обращаетесь к ресурсам с помощью кода, это, по сути, эквивалентно ссылке DynamicResource из XAML.

Базовый ResourceDictionary объект поддерживает методы, необходимые для добавления, удаления или запроса ресурсов из коллекции с помощью кода. Свойство Resources настраивается для поддержки сценария полной замены коллекции ресурсов элемента на новый или другой ResourceDictionary.

Обратите внимание, что показанный синтаксис XAML не включает элемент для ResourceDictionary. Это пример синтаксиса неявной коллекции; Можно опустить тег, представляющий элемент коллекции. Вместо этого указываются элементы, которые добавляются в качестве элементов в коллекцию. Дополнительные сведения о неявных коллекциях и XAML см. в разделе Подробные сведения о синтаксисе XAML. Один из случаев, когда по-прежнему ResourceDictionary явно указывается в качестве элемента, заключается в том случае, если вы вводите объединенный словарь. В этом случае, как правило, нет дочерних элементов для этого ResourceDictionary. Дополнительные сведения см. в разделе Объединенные словари ресурсов.

Использование элемента свойства XAML

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

Значения XAML

oneOrMoreResourceElements
Один или несколько элементов объекта, каждый из которых определяет ресурс. Каждый элемент свойства ресурса в каждом ResourceDictionary элементе должен иметь уникальное значение для директивы x:Key, которая служит уникальным ключом при извлечении значений ResourceDictionaryиз .

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

См. также раздел