UWP实现Hierarchical NavigationView启动报XamlParseException异常
异常产生原因
- 你使用的
Microsoft.UI.Xaml.Controls.NavigationView属于WinUI 2(Microsoft.UI.Xaml)库的控件,其默认样式依赖库内置的主题资源字典。你没有在应用全局资源中合并WinUI对应的资源字典,导致XAML解析阶段找不到TabViewButtonBackground这类内置资源,触发解析异常。 - 少数情况是安装的WinUI 2版本过低,和XAML Controls Gallery示例使用的版本不兼容,旧版本缺少对应资源键。
解决方案
- 首先通过NuGet包管理器确认已安装
Microsoft.UI.Xaml包,版本建议选择2.8.x(当前WinUI 2最新稳定版),至少不低于2.4版本(分层NavigationView从该版本开始支持)。 - 打开项目的
App.xaml文件,在全局资源节点中合并WinUI的主题资源字典,代码如下:
<Application ... > <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <!-- 合并WinUI 2的内置资源 --> <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" /> <!-- 你自己的其他全局资源字典可以加在这后面 --> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application>
- 确认项目的目标平台配置:最低支持的Windows 10版本不低于1809(内部版本号10.0.17763.0),目标版本高于等于最低版本。
- 清理项目,删除项目根目录下的
bin、obj文件夹后重新编译运行即可。
内容的提问来源于stack exchange,提问作者David Simões
相关产品推荐
相关产品推荐

