WPF WebView2 - 无法禁用上下文菜单

nam*_*nam 6 c# wpf webview2

环境Windows 10 Pro - ver. 1903VS2019 latest versionWPF Core

当我在WebView2HTML控件内显示的页面上有手动控件时,我可以通过简单地将属性添加到标记来禁用上下文菜单。但在大多数情况下,网页是根据用户交互(用户导航到哪个页面等)显示的。oncontextmunu={return false;}<body>

问题:如何禁用 WebView2 控件中显示的网页的上下文菜单?

评论

  1. 我注意到,在某些情况下,当 JavaScript 与网页一起加载时,即使我以编程方式将此属性添加到加载页面的标签oncontextmunu={return false;}中,也不会禁用上下文菜单。body我看到Microsoft.Web.WebView2.Core.CoreWebView2SettingsAreDefaultContextMenusEnabled类的属性,但无法识别.VS2019WebView2
  2. WebBrowser在WPF 的旧控件上也存在类似的问题,如此处此处所述,并且 WebView2 也有类似的情况。
  3. 根据此Microsoft 链接的第 5 项,问题已得到解决。C++但那里的解决方案似乎与我使用时有关C#。也许,还有另一种选择。

小智 15

大多数情况下,禁用上下文菜单的原因是为了防止最终用户检查页面源。因此,我们还应该使用这两个指令禁用加速键:

webView.CoreWebView2.Settings.AreBrowserAcceleratorKeysEnabled = false;
webView.CoreWebView2.Settings.AreDefaultContextMenusEnabled = false;
Run Code Online (Sandbox Code Playgroud)

因为最终用户可以使用 Ctrl+Shift-C 和 F12 进行 DevTools 检查加速键

  • 完美的!我忘记了键盘快捷键。接得好! (2认同)