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

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

ResourceDictionary

Объект ResourceDictionary, содержащий ноль или более ресурсов области приложения.

Атрибуты

Примеры

В этом примере показано, как использовать XAML вместе с ресурсами области приложения для создания согласованного визуального вида. Первый пример — из App.xaml; второй — из MainWindow.xaml.

<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="MainWindow.xaml"
    >

  <Application.Resources>
    <SolidColorBrush x:Key="BackgroundColor" Color="Yellow"></SolidColorBrush>
  </Application.Resources>

</Application>
<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ApplicationResourcesSnippetSample_XAML" 
    Height="300" 
    Width="300" 
    Background="{StaticResource BackgroundColor}"
    >
  <Grid>
    <!-- Additional XAML. -->
  </Grid>
</Window>

В следующем примере показано, как задать ресурс приложения в коде и XAML (в файле App.xaml в проекте WPF C# или файле Application.xaml в проекте Visual Basic WPF).

// Set an application-scope resource
Application.Current.Resources["ApplicationScopeResource"] = Brushes.White;
' Set an application-scope resource
Application.Current.Resources("ApplicationScopeResource") = Brushes.White
<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.App"
    StartupUri="MainWindow.xaml" 
    Startup="App_Startup" 
    Exit="App_Exit">
    <Application.Resources>
        <SolidColorBrush x:Key="ApplicationScopeResource" Color="White"></SolidColorBrush>
    </Application.Resources>
</Application>

В следующем примере показано, как получить ресурс приложения в коде.

// Get an application-scope resource
Brush whiteBrush = (Brush)Application.Current.Resources["ApplicationScopeResource"];
' Get an application-scope resource
Dim whiteBrush As Brush = CType(Application.Current.Resources("ApplicationScopeResource"), Brush)

Комментарии

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

  1. Элементы

  2. Windows

  3. Application.Resources

  4. Система

Следовательно, элементы пользовательского интерфейса могут привязаться к ресурсам области приложения. Кроме того, если ресурсы изменяются, система ресурсов гарантирует, что свойства элементов, привязанные к этим ресурсам, автоматически обновляются в соответствии с изменением.

Ресурсы области приложения предоставляют простой способ поддержки согласованной темы в приложении. Вы можете легко создать тему в XAML с помощью тега Application.Resources . Однако если приложение поддерживает несколько тем, которые могут содержать большое количество элементов темы, управлять ими можно с помощью одного ResourceDictionary экземпляра для каждой темы. Таким образом, новую тему можно применить, задав свойству Resources соответствующее ResourceDictionaryзначение.

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

Resources является потокобезопасной и доступен из любого потока.

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