MahApps.Metro IOException:找不到资源“styles/colors.xaml”

MahApps.Metro IOException: Cannot locate resource 'styles/colors.xaml'

提问人:WSC 提问时间:5/29/2020 最后编辑:AShWSC 更新时间:3/6/2021 访问量:3882

问:

我已经使用 NuGet 的 MahApps.Metro 一段时间了,没有任何问题。但是,最近我遇到了一些需要重新安装 NuGet 包的问题。

最后,我卸载了所有我需要的 NuGet 包并重新安装了它们。据我所知,现在一切正常,除了当我尝试启动应用程序时,它会立即抛出上述异常:

System.Windows.Markup.XamlParseException: ''Set property 'System.Windows.ResourceDictionary.Source' threw an exception.' Line number '34' and line position '18'.'

Inner Exception
IOException: Cannot locate resource 'styles/colors.xaml'.

如果我检查那些指定的行,就是这个.<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />

我的 App.xaml 如下所示:

<Application.Resources>
    <ResourceDictionary>
        <!-- Some other stuff is here -->
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
            <!-- Bunch of other stuff here -->
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

我从其他类似问题中尝试了各种方法:

  • 将“颜色”更改为“颜色”
  • 将“颜色”更改为“颜色”
  • 将“颜色”更改为“颜色”
  • 还原 NuGet 包
  • 已卸载/重新安装软件包
  • 尝试了 x86、x64 和 AnyCPU 目标平台
  • 无穷无尽的清理/重建解决方案,中间关闭 VS2017
  • 检查是否正确StartupUri
  • 确保并且是不同的(并且一直如此)Assembly nameDefault namespace

我完全不知道接下来要尝试什么......

wpf xaml mahapps.metro

评论


答:

4赞 WSC 5/29/2020 #1

我没有尝试过的一件事是使用旧版本......是的,MahApps.Metro 的 2.0.0 版改变了主题的完成方式。使用版本 1.6.5 可以解决此问题,或者您需要按照此处的迁移指南进行操作:https://mahapps.com/docs/guides/migration-to-v2.0

11赞 nam 1/2/2021 #2

由于您很可能使用了最新的 MahApps.Metro v2.0 包,因此您遇到了这些错误。正如您提到的,我们需要遵循官方的迁移到 v2.0 指南。以下步骤帮助我解决了这个问题,该问题可能会帮助本文中遇到类似问题的其他一些读者:NuGet

  1. 删除标签<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />

  2. 替换标签,例如

    <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Green.xaml" />
    <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />`
    

    <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Themes/Light.Green.xaml" />`
    
  3. 在标记中删除单词<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.AnimatedTabControl.xaml" />Animated

如果有任何其他标签引发错误,请参阅上面的链接。我使用该链接解决了上述问题。