Show / Hide Table of Contents

Практическое руководство. Использование словаря ресурсов области определения приложения

В этом примере показано, как определить и использовать пользовательский словарь ресурсов области определения приложения.

Пример

Application предоставляет хранилище области приложения для общих ресурсов: Resources. По умолчанию Resources свойство инициализируется с помощью экземпляра ResourceDictionary типа. Этот экземпляр используется при получении и установке свойств области определения приложения, с помощью Resources. Дополнительные сведения см. в разделе Как Получение и задание ресурсов области определения приложения.

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

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
    <SolidColorBrush x:Key="StandardSolidColorBrush" Color="Blue" />
    <LinearGradientBrush x:Key="StandardLinearGradientBrush" StartPoint="0.0,0.0" EndPoint="1.0,1.0">
        <LinearGradientBrush.GradientStops>
            <GradientStop Color="White" Offset="0" />
            <GradientStop Color="Black" Offset="1" />
        </LinearGradientBrush.GradientStops>
    </LinearGradientBrush>
</ResourceDictionary>

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

<!--Set the Application ResourceDictionary-->
<Application.Resources>
    <ResourceDictionary Source="MyResourceDictionary.xaml" />
</Application.Resources>

Далее показано, как можно получить ресурсы области приложения из словаря ресурсов, предоставляемых Resources в XAML.

<!--Set the brush as a StaticResource from the ResourceDictionary-->
<Rectangle Name="Rect" Height="200" Width="100" Fill="{StaticResource ResourceKey=StandardSolidColorBrush}" />

Ниже показано, как можно получить ресурсы в коде.

//Get a resource from the ResourceDictionary in code
Brush gradientBrush = (Brush)Application.Current.FindResource("StandardLinearGradientBrush");

Есть две рекомендации при использовании Resources. Во-первых, словарь ключ является объектом, поэтому необходимо использовать один и тот же экземпляр объекта при установке и получении значения свойства. (Обратите внимание, что при использовании строки в ключе учитывается регистр.) Во-вторых, словарь значение является объектом, поэтому необходимо преобразовать значение в требуемый тип при получении значения свойства.

См. также

  • ResourceDictionary
  • Resources
  • Ресурсы XAML
  • Объединенные словари ресурсов
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX