19

我在App.xaml主程序集中有一个合并的资源字典,它结合了来自不同程序集的各种资源字典:Common 和 PresentationLayer。

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Common;component/Themes/Button.xaml"/>
            <ResourceDictionary Source="/PresentationLayer;component/DataTemplates/AppointmentsDataTemplates.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

在运行时,资源字典中的样式会正确地应用于控件。但是,在设计时未应用样式,Visual Studio 2012 不断给出以下错误:

An error occurred while finding the resource dictionary "/Common;component/Themes/Button.xaml".

并警告:

The resource "BannerButton" could not be resolved.

我遇到了这篇文章,但尽管 Build Action 设置为 Resource,问题仍然存在。此外,在 Visual Studio 2010 或 Expression Blend 4 下运行时,我没有遇到此问题。主程序集肯定包含对通用程序集的引用,并且我没有更改包 URI。

4

6 回答 6

8

这是 Visual Studio 2012 的一个已知问题。请参阅Microsoft Connect 上的此链接。安装 VS2012 Update 1 后,这个问题为我解决了。如果您认为您正在运行最新版本的 VS2012 并且仍然遇到此问题,请绝对确保已应用更新。我以为我已经使用 Windows Update 进行了更新,但后来发现我必须告诉 VS2012 应用更新。在 VS2012 完成之后,一切都很好。

于 2013-02-09T22:53:38.730 回答
8

对于 VS2017,如果引用程序集并仔细检查所有命名是否正常,请尝试关闭 VS 并删除.vs解决方案目录中的目录。这将导致您丢失所有用户设置(启动项目、WPF 设计器缩放等),但会解决此问题。

于 2019-03-29T13:53:16.950 回答
2

如果您使用的是 Visual Studio 2017,请尝试重新启动计算机。问题可能会得到解决。

于 2017-09-19T07:53:39.820 回答
1

在 Window.Resources 中尝试相同的操作,确保在使用 app.xaml 时添加了命名空间,并且不要忘记将构建选项更改为需要使用该 app.xaml的页面。

于 2013-01-18T05:47:49.173 回答
1

我正在使用 VS2019 收到此错误。

我只是重新启动VS,错误就消失了。

于 2021-05-05T13:12:39.580 回答
0

我有同样的问题,原因是资源字典 xaml 文件中的拼写错误。检查资源字典 xaml 文件是否存在拼写错误和错误。更正拼写后,它起作用了。

于 2021-01-20T14:23:28.040 回答