环境: Windows 10 Pro - 版本号 1903
, VS2019 最新版本
, WPF Core
在 WebView2 控件中显示的 HTML
页面上手动控制时,可以通过将 oncontextmunu={return false;}
添加为 <body>
标签的属性来禁用上下文菜单。但在大多数情况下,网页是基于用户交互来显示的(例如用户导航到的页面等)。
问题: 如何禁用 WebView2 控件中显示的网页的上下文菜单?
备注:
- 我注意到,在某些情况下,当与网页一起加载的 JavaScript 文件时,即使我在已加载页面的
body
标签中以编程方式添加了此属性,oncontextmunu={return false;}
也无法禁用上下文菜单。我看到 Microsoft.Web.WebView2.Core.CoreWebView2Settings 类的AreDefaultContextMenusEnabled
属性,但是VS2019
没有识别到任何此类属性适用于WebView2
。 - 旧的 WPF
WebBrowser
控件存在类似问题,如这里和这里所述,我在 WebView2 中也遇到了类似情况。 - 根据此Microsoft 链接中的第 5 条,该问题已得到解决。但那里的解决方法似乎涉及到
C++
,而我正在使用C#
。也许有其他替代方案。
webView21.CoreWebView2.Settings.AreDefaultContextMenusEnabled = false; 在 CoreWebView 初始化之后
对于我的特定情况起作用了(谢谢)。不确定它是否适用于其他情况。正如 MS Edge WebView2 团队的成员在这里所解释的那样,他们的团队尚未完全支持自定义上下文菜单。但是有一些解决方法 - 例如您在这里演示的方法。初始化的参考资料请参见此处。 - nam