C# GeckoFX在保留滚动条的同时禁用表单输入

C# GeckoFX在保留滚动条的同时禁用表单输入,c#,geckofx,window-handles,C#,Geckofx,Window Handles,GeckoFX浏览器启用的属性确定整个浏览器是否可以获得输入 但是,如果它被设置为false,那么滚动条将无法单击或拖动 我正在寻找一种在不禁用滚动条的情况下禁用整个浏览器的方法,简单地说,就是禁用所有内容,防止它们从表单获取输入。我看到了许多路由:而不是geckowebbrowser.Enabled=false DOM上的所有输入、选择、文本区域、按钮和链接,例如 GeckoElementCollection byTag = _browser.Document.GetElementsByTag

GeckoFX浏览器启用的属性确定整个浏览器是否可以获得输入

但是,如果它被设置为false,那么滚动条将无法单击或拖动


我正在寻找一种在不禁用滚动条的情况下禁用整个浏览器的方法,简单地说,就是禁用所有内容,防止它们从表单获取输入。

我看到了许多路由:而不是geckowebbrowser.Enabled=false

DOM上的所有输入、选择、文本区域、按钮和链接,例如

GeckoElementCollection byTag = _browser.Document.GetElementsByTagName("input");
foreach (var ele in byTag)
{
    var input = ele as GeckoInputElement;
    input.Disabled = true;
}
等等

从可单击的元素中删除指针事件,例如

var byTag = _browser.Document.GetElementsByTagName("a");
foreach (var ele in byTag)
{    
     var a = ele as GeckoHtmlElement;
    //a.SetAttribute("disabled", @"true");
    a.SetAttribute("style", "pointer-events: none;cursor: default;");
}
使用不可见的CSS阻止程序覆盖,例如使用JavaScript

//用户界面块 window.onload=函数{ var blockUI=document.createElementdiv; blockUI.setAttributeid,拦截器; blockUI.innerHTML= document.body.appendChildblockUI; //解除封锁 //var cover=document.getElementByIdblocker.style.display=none; } 阻滞剂 { 位置:固定; 排名:0; 左:0; 宽度:100%; 身高:100%; 不透明度:0.0; 背景色:111; z指数:9000; 溢出:自动; }
这些建议中的任何一个都有帮助,但我很感谢您的尝试。在Edge中,我的解决方案很简单,检查页面大小,更改浏览器大小以适应页面,禁用浏览器,创建所需大小的面板并将浏览器放入其中,使用面板滚动条。但是,当更改gecko浏览器时,会减慢速度,特别是在大尺寸的情况下,请尝试:2000 x 20000例如,浏览器将冻结。如果我能找到一个解决方案,那就太好了,或者是一个基于窗口句柄的解决方案@另一种方法是调整浏览器的大小,将其绘制为图像,再次调整大小并在面板中显示图像。问题是它会非常慢,占用大量的cpu,而且不会达到高端。在edge中很容易,在gecko fx中我找不到合适的解决方案。如果宽度为100%,那么它也会包含滚动条,所以它也会禁用滚动条。因此,它没有用处。