【问题标题】:Cannot find resource dictionary in WPF application在 WPF 应用程序中找不到资源字典
【发布时间】:2012-06-15 15:09:35
【问题描述】:

我正在构建 WPF 应用程序并在尝试引用资源字典时遇到错误。在我的 WPF 应用程序项目中,我有一个名为“Styles”的文件夹,其中包含我的应用程序的所有 xaml 样式模板:

在我的 app.xaml 文件中,我有这个:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Styles/MetroTheme.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

但是,当我将鼠标悬停在源属性上时,我收到一条错误消息,提示“查找资源字典“Styles/MetroTheme.xaml”时出错。我可以在 Visual Studio 和文件系统。

我还尝试了“/Styles/MetroTheme.xaml”和源属性的包 uri,但均未成功。知道为什么我收到此文件未找到错误吗?

【问题讨论】:

  • MetroTheme.xaml 上的构建操作设置是什么?将其设置为页面

标签: c# wpf xaml


【解决方案1】:

确保 MetroTheme.xaml 的构建操作设置为 Page。

【讨论】:

  • 这似乎已经解决了这个错误。感谢您的帮助!
【解决方案2】:

我遇到了同样的问题,但设置 Build Action = Page 并没有解决我的问题。原来我需要使用Pack URI Format。所以,

<ResourceDictionary Source="pack://application:,,,/Styles/MetroTheme.xaml"/>

编辑

事实证明,上述方法将消除构建错误,但仍会导致运行时错误。我需要包含完整的程序集规范以完全解决(即使所有文件都在同一个程序集中):

<ResourceDictionary Source="pack://application:,,,/WpfApplication10;component/Styles/MetroTheme.xaml"/>

【讨论】:

    【解决方案3】:

    有时关闭 Visual Studio 并再次打开它可以解决此问题。

    【讨论】:

    • 这听起来可能很愚蠢/简单...我尝试了一切,然后就是这个。原来这就是我需要做的。非常令人沮丧。
    【解决方案4】:

    在项目属性中将目标 .net 版本更改为旧版本,然后重置为以前的版本。

    【讨论】:

      猜你喜欢
      • 2017-12-03
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多