如何在WPF中使用全局资源?

Ban*_*ord 13 .net wpf

我有一个WPF应用程序,我想使用一些静态资源.我创建了一个包含资源的资源库XAML文件.我还通过Properties面板在项目的Resources中添加了一个字符串.

我假设我可以将这些资源与绑定表达式一起使用:

{StaticResource ResourceName}
Run Code Online (Sandbox Code Playgroud)

但是visual studio告诉我没有找到资源.我是否必须在我的XAML中包含某种形式的参考?我见过的例子只包括本地资源,例如:

<Window.Resources>, <Page.Resources> etc
Run Code Online (Sandbox Code Playgroud)

我不想在本地包含资源,因为我希望它们可用于应用程序的多个部分.

Sna*_*ake 11

把它们放在App.xaml :)

在每个WPF应用程序中都有一个App.xaml(及其相应的代码文件App.xaml.cs或App.xaml.vb),它作为应用程序范围声明的全局文件.您可以使用此文件在应用程序中声明持续的外观.例如,您可以为应用程序中的所有按钮声明默认的红色背景.

http://www.microsoft.com/emea/msdn/thepanel/en/articles/introduction_wpf.aspx


Roh*_*dal 5

您可以创建全局资源的字典并将其路径包含在app.xaml中

<Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/YourProject;Component/YourXamlFile.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
Run Code Online (Sandbox Code Playgroud)

现在,YourXamlFile.xaml 中的所有资源都将在项目中全局可见。