UWP使用muxc:NavigationView时WebView无法交互,是否不支持该组合?
WebView支持在muxc:NavigationView中使用,你遇到的是WinUI 2.x旧版本中muxc:NavigationView的手势捕获逻辑缺陷导致的输入事件被拦截问题,可通过以下方案解决:
- 方案1:关闭NavigationView的手势动效开关
在你的muxc:NavigationView标签中添加IsTranslationEnabled="False"属性即可。该属性是WinUI 2.2版本后新增的侧栏滑动动效优化项,会错误拦截指向子内容区的指针输入事件,关闭后不影响NavigationView的基础功能,仅会取消侧栏展开收起的平移动效,WebView的交互即可恢复正常。
修改后的控件代码示例:
<muxc:NavigationView OpenPaneLength="175" x:Name="NavView" ItemInvoked="NavView_ItemInvoked" Loaded="NavView_Loaded" IsSettingsVisible="True" IsBackButtonVisible="Collapsed" IsTranslationEnabled="False">
- 方案2:升级WinUI 2依赖包到最新稳定版
该输入拦截问题已经在WinUI 2.8及以上版本被官方修复,你可以直接在NuGet包管理器中将Microsoft.UI.Xaml依赖包升级到最新稳定版,无需修改业务代码即可解决问题。 - 方案3:替换为WebView2控件
UWP原生的旧版WebView已经停止维护,推荐迁移到基于Chromium内核的WebView2控件,其输入事件路由逻辑与UWP XAML框架兼容性更好,不会和muxc系列控件的手势逻辑产生冲突,同时还支持更多现代网页特性,兼容性和性能都优于旧版WebView。
内容的提问来源于stack exchange,提问作者Pierce_Kennnedy437
相关产品推荐
相关产品推荐

