Информация
Запрошенная вами тема показана ниже. Однако эта тема не включена в библиотеку.

FrameworkElement.Resources - свойство

Возвращает или задаёт локально определённый словарь ресурсов.

Пространство имен:  System.Windows
Сборка:  PresentationFramework (в PresentationFramework.dll)
XMLNS для XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[AmbientAttribute]
public ResourceDictionary Resources { get; set; }
<object>
  <object.Resources>
    oneOrMoreResourceElements
  </object.Resources>
</object>

Значения XAML

oneOrMoreResourceElements

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

Значение свойства

Тип: System.Windows.ResourceDictionary
Текущий локально определенный словарь ресурсов, в котором к каждому ресурсу можно получить доступ по ключу.

Словари ресурсов, которые можно определить полностью или частично в Язык XAML (Extensible Application Markup Language), обычно создаются в виде элемента-свойства и чаще всего располагаются в корневом элементе любой отдельной страницы или приложения. Размещение словаря ресурсов на этом уровне облегчает поиск из отдельных дочерних элементов на странице (или из любой страницы, в случае приложения). В большинстве скриптов приложений рекомендуется определить эти стили как элементы-объекты в словаре ресурсов или как внешние ресурсы, чтобы весь ресурс стиля мог быть автономным (этот подход помогает отделить ответственность дизайнера от ответственности разработчика путем разделения физических файлов, которые нужно редактировать).

Обратите внимание, что данное свойство возвращает только словарь ресурсов, объявленный непосредственно внутри данного элемента. Это отличается от фактического процесса поиска ресурсов, когда дочерний элемент может получать доступ к любому из ресурсов, определенных в каждом родительском элементе, выполняя рекурсивный восходящий поиск.

К ресурсам можно также обращаться в коде изнутри коллекции, но следует учитывать, что ресурсы, созданные в Язык XAML, определенно не будут доступны до инициирования события Loaded элементом, объявляющим словарь. Фактически синтаксический анализ ресурсов выполняется асинхронно и даже событие Loaded не гарантирует, что можно обращаться к ресурсу, определенному в Язык XAML. По этой причине обращаться к ресурсам, определенным в Язык XAML, обычно следует только в коде времени выполнения или с помощью других приемов Язык XAML, например стилей или расширенных ссылок на ресурсы для значений атрибутов. Доступ к ресурсам из кода по сути эквивалентен ссылке DynamicResource из Язык XAML.

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

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

В этом примере описывается порядок определения ресурса и создания ссылки на него с помощью атрибута в Язык XAML (Extensible Application Markup Language).

В следующем примере определяются ресурсы двух типов: ресурс SolidColorBrush, а также несколько ресурсов Style. Ресурс SolidColorBrushMyBrush используется для предоставления значений нескольких свойств, каждое из которых принимает значение типа Brush. Каждый из ресурсов класса Style (PageBackground, TitleText и Label) предназначен для определенного типа элемента управления. Стили используются для установки нескольких свойств для целевых элементов управления. Для этого создается ссылка ключа ресурса на ресурс стиля, который используется для установки свойства Style для нескольких конкретных элементов управления, определенных в Язык XAML.

Обратите внимание, что одно из свойств метода установки стиля Label также ссылается на ресурс MyBrush, определенный ранее. Это стандартный способ. Однако следует учитывать, что анализ ресурсов и их добавление в словарь ресурсов осуществляется в том порядке, в котором они заданы. Если для ссылки на ресурсы из другого ресурса используется Расширение разметки StaticResource, их запрос также осуществляется в том порядке, в котором они найдены в словаре. Убедитесь, что любые ресурсы, на которые можно ссылаться, определены в коллекции ресурсов до их запроса. При необходимости можно обойти строгий порядок создания ссылок ресурсов. Для этого следует использовать Расширение разметки DynamicResource для ссылки на ресурс во время выполнения. Однако следует учитывать, что использование этого способа DynamicResource может привести к снижению производительности. Дополнительные сведения см. в разделе Ресурсы XAML.


<Page Name="root"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Page.Resources>
    <SolidColorBrush x:Key="MyBrush" Color="Gold"/>
    <Style TargetType="Border" x:Key="PageBackground">
      <Setter Property="Background" Value="Blue"/>
    </Style>
    <Style TargetType="TextBlock" x:Key="TitleText">
      <Setter Property="Background" Value="Blue"/>
      <Setter Property="DockPanel.Dock" Value="Top"/>
      <Setter Property="FontSize" Value="18"/>
      <Setter Property="Foreground" Value="#4E87D4"/>
      <Setter Property="FontFamily" Value="Trebuchet MS"/>
      <Setter Property="Margin" Value="0,40,10,10"/>
    </Style>
    <Style TargetType="TextBlock" x:Key="Label">
      <Setter Property="DockPanel.Dock" Value="Right"/>
      <Setter Property="FontSize" Value="8"/>
      <Setter Property="Foreground" Value="{StaticResource MyBrush}"/>
      <Setter Property="FontFamily" Value="Arial"/>
      <Setter Property="FontWeight" Value="Bold"/>
      <Setter Property="Margin" Value="0,3,10,0"/>
    </Style>
  </Page.Resources>
  <StackPanel>
    <Border Style="{StaticResource PageBackground}">
      <DockPanel>
        <TextBlock Style="{StaticResource TitleText}">Title</TextBlock>
        <TextBlock Style="{StaticResource Label}">Label</TextBlock>
        <TextBlock DockPanel.Dock="Top" HorizontalAlignment="Left" FontSize="36" Foreground="{StaticResource MyBrush}" Text="Text" Margin="20" />
        <Button DockPanel.Dock="Top" HorizontalAlignment="Left" Height="30" Background="{StaticResource MyBrush}" Margin="40">Button</Button>
        <Ellipse DockPanel.Dock="Top" HorizontalAlignment="Left" Width="100" Height="100" Fill="{StaticResource MyBrush}" Margin="40" />
      </DockPanel>
    </Border>
  </StackPanel>
</Page>


.NET Framework

Поддерживается в версиях: 4.5, 4, 3.5, 3.0

.NET Framework (клиентский профиль)

Поддерживается в версиях: 4, 3.5 с пакетом обновления 1 (SP1)

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 (роль основных серверных компонентов не поддерживается), Windows Server 2008 R2 (роль основных серверных компонентов поддерживается в пакете обновления 1 (SP1) или выше; системы на базе Itanium не поддерживаются)

Среда .NET Framework поддерживает не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

Добавления сообщества

Показ:
© 2014 Microsoft