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>

以下示例演示如何在 C# WPF 项目中的代码和 XAML (中设置应用程序资源,以及如何在 Visual Basic WPF 项目) 的 App.xaml 文件中设置 Application.xaml 文件。

// 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. 系统

因此,用户界面 (UI) 元素可以绑定到应用程序范围资源。 此外,如果资源发生更改,资源系统可确保绑定到这些资源的元素属性自动更新以反映更改。

应用程序范围资源提供了一种简单的方法来支持整个应用程序中的一致主题。 可以使用标记在 XAML Application.Resources 中轻松创建主题。 但是,如果应用程序支持多个主题(可能包含大量主题元素),则使用每个主题的一个 ResourceDictionary 实例管理它们可能更容易。 这样,可以通过将 Resources 属性设置为适当的 ResourceDictionary属性来应用新主题。

使用 Resources 时有两个注意事项。 首先,字典 是一个对象,因此在设置和获取属性值时,都需要使用完全相同的对象实例, (请注意,使用字符串) 时,键区分大小写。 其次,字典 是一个对象,因此在获取属性值时,需要将值转换为所需的类型。

Resources 是线程安全的,可从任何线程获取。

适用于