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

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

我已经使用 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>

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

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

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

由于您很可能使用了 MahApps.Metro v2.0 的最新 NuGet 软件包,所以您遇到了这些错误。正如您提到的,我们需要遵循官方 Migration to v2.0 指南。以下步骤帮助我解决了可能会帮助遇到类似问题的 post 其他读者的问题:

  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

如有其他标签报错,请参考上述link。我用 link 解决了上述问题。