MahApps.Metro出现IOException: 无法找到资源 'styles/colors.xaml'。

6

我一直使用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>

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

  • 将“Colors”更改为“Colours”
  • 将“Colors”更改为“colors”
  • 将“Colors”更改为“colours”
  • 恢复NuGet包
  • 卸载/重新安装包
  • 尝试使用x86、x64和AnyCPU目标平台
  • 无数次地清理/重建解决方案,期间关闭VS2017
  • 检查StartupUri是否正确
  • 确保Assembly nameDefault namespace不同(并且始终如此)

我完全不知道下一步该怎么办了...

2个回答

11

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

  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

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


4

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接