如何:使用应用程序范围的资源字典

更新:2007 年 11 月

此示例演示如何使用应用程序范围的自定义资源字典。

示例

Application 为共享的资源 Resources 公开应用程序范围的存储区。默认情况下,使用 ResourceDictionary 类型的实例初始化 Resources。当您使用 Resources 属性获取或设置应用程序范围的属性(请参见如何:获取和设置应用程序范围的资源)时,可以使用此实例。

如果您有多个使用 Resources 设置的资源,您可以使用自定义资源字典存储这些资源,并使用它设置 Resources。您可以使用与下面的标记类似的标记声明自定义资源字典:

<ResourceDictionary
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" >
    <SolidColorBrush x:Key="StandardSolidColorBrush" Color="White" />
    <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 交换整个资源字典使您可以支持应用程序范围的主题,每个主题都通过一个资源字典来封装。请参见使用主题的应用程序示例。

若要从由 Resources 公开的资源字典获取应用程序范围的资源(不论是由 Application 创建还是由您自己创建),需要如下类似的代码:

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

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

请参见

参考

ResourceDictionary

Resources