如何使用应用程序资源 (WPF .NET)

此示例演示如何使用应用程序定义的资源。 可以在应用程序级别定义资源,通常通过 App.xaml 或 Application.xaml 文件进行,具体取决于你的项目使用哪个文件。 应用程序定义的资源是全局范围的,可由应用程序的所有部分访问。

重要

面向 .NET 7 和 .NET 6 的桌面指南文档正在撰写中。

示例

以下示例演示应用程序定义文件。 应用程序定义文件定义资源部分(Resources 属性的值)。 构成应用程序的所有其他页均可访问在应用程序级别定义的资源。 这种情况下,资源是声明样式。 由于包含控件模板的完整样式可能很长,因此此示例省略了在样式的 ContentTemplate 属性设置器中定义的控件模板。

<Application.Resources>
    <Style TargetType="Border" x:Key="FancyBorder">
        <Setter Property="Background" Value="#4E1A3D" />
        <Setter Property="BorderThickness" Value="5" />
        <Setter Property="BorderBrush">
            <Setter.Value>
                <LinearGradientBrush>
                    <GradientStop Offset="0.0" Color="#4E1A3D"/>
                    <GradientStop Offset="1.0" Color="Salmon"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>
</Application.Resources>

下面的示例显示了引用上一个示例中的应用程序级资源的 XAML 页面。 资源使用 StaticResource 标记扩展引用,该扩展指定资源的唯一资源键。 在当前对象和窗口的范围内找不到资源“FancyBorder”,因此超出当前页面范围进入应用程序级资源范围进行资源查找。

<Border Style="{StaticResource FancyBorder}">
    <StackPanel Margin="5">
        <Button>Button 1</Button>
        <Button>Button 2</Button>
        <Button>Button 3</Button>
        <Button>Button 4</Button>
    </StackPanel>
</Border>

另请参阅