相关疑难解决方法(0)

WPF WebBrowser控件 - 如何抑制脚本错误?

我在这里发现了类似的问题:

使用WPF WebBrowser控件时如何禁止脚本错误?

但这些解决方案不适用于我.我需要阻止弹出窗口出现,因为我正在使用WebBrowser自动执行网站上的管理任务.

SuppressScriptErrors 似乎不是我的WebControl上的可用属性:(

.net c# wpf webbrowser-control

56
推荐指数
5
解决办法
5万
查看次数

WebBrowser控件 - 防止右键单击

在我的应用程序中,我有一个包含浏览器控件的表单,我在其中显示SSRS报告.我想阻止用户右键单击浏览器控件并显示弹出菜单.理想情况下,我希望右键单击不执行任何操作.有没有办法可以做到这一点?

c# browser webbrowser-control reporting-services

14
推荐指数
1
解决办法
2万
查看次数

在WPF中禁用WebBrowser上的上下文菜单

我有一个WPF应用程序,它将在带有触摸屏的PC上的自助服务终端上运行.应用程序以全屏模式运行,以隐藏操作系统.在我的一个页面上,我有一个WebBrowser控件,允许用户查看一些网页(导航仅限于某些页面).由于计算机将被放置在公共场所,我不能让用户访问操作系统.问题是,触摸屏允许右键单击Web浏览器,最终导致任务栏出现......不好......!

我一直试图在过去几天禁用该上下文菜单而没有太大成功.基本上我现在在的地方是:

  • 添加了对SHDocVw.dll的COM引用以获取IWebBrowser2接口(需要禁用启动新窗口.

    [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    [Guid("6d5140c1-7436-11ce-8034-00aa006009fa")]
    internal interface IServiceProvider
    {
        [return: MarshalAs(UnmanagedType.IUnknown)]
        object QueryService(ref Guid guidService, ref Guid riid);
    }
    static readonly Guid SID_SWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046");
    
    Run Code Online (Sandbox Code Playgroud)
  • 获取IWEbBrowser2接口

                IServiceProvider _serviceProvider = null;
    
                if (_browser.Document != null)
                {
                    _serviceProvider = (IServiceProvider)_browser.Document;
    
                    Guid _serviceGuid = SID_SWebBrowserApp;
                    Guid _iid = typeof(SHDocVw.IWebBrowser2).GUID;
    
                    SHDocVw.IWebBrowser2 _webBrowser = (SHDocVw.IWebBrowser2)_serviceProvider.QueryService(ref _serviceGuid, ref _iid);
    
    Run Code Online (Sandbox Code Playgroud)
  • 并尝试禁用文档上的oncontextmenu.

                    HTMLDocument doc = _webBrowser.Document as HTMLDocument;
                    mshtml.HTMLDocumentEvents2_Event ev = doc as mshtml.HTMLDocumentEvents2_Event;
    
                    ev.oncontextmenu += (arg) => { return false; };
    
    Run Code Online (Sandbox Code Playgroud)

到目前为止,没有成功......任何想法?

提前致谢.

.net c# wpf com-interop

6
推荐指数
2
解决办法
9927
查看次数

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#。也许,还有另一种选择。

c# wpf webview2

6
推荐指数
1
解决办法
7827
查看次数