我在C#WPF应用程序中使用CefSharp 57 我想在任何给定的网页上隐藏垂直和水平滚动条。
我一直无法找到直接使用CefSharp执行此操作的方法
它似乎没有类似ScrollBarsEnabled
的属性,我曾经习惯使用原生的WinForms浏览器。
我想我可能会在页面渲染后注入一些CSS / JS来将body溢出设置为隐藏但这没有效果。
private void OnBrowserFrameLoadEnd(object sender, FrameLoadEndEventArgs args)
{
if (args.Frame.IsMain)
{
// Shows an alert after page is loaded so it definitely works
args
.Browser
.MainFrame
.ExecuteJavaScriptAsync("alert('HELLO!');
// Scrollbars are still visible after this fires
args
.Browser
.MainFrame
.ExecuteJavaScriptAsync(
"(function() { document.body.style.overflow = 'hidden'; });");
}
}
我看看是否有办法自己绘制滚动条并使它们透明,但我无法找到方法来执行此操作。
有没有办法使用CefSharp隐藏任何给定页面上的垂直和水平滚动条?
答案 0 :(得分:8)
我最初展示的代码是正确的,我只需要简化我提供的脚本:
WebBrowser.FrameLoadEnd += OnBrowserFrameLoadEnd;
private void OnBrowserFrameLoadEnd(object sender, FrameLoadEndEventArgs args)
{
if (args.Frame.IsMain)
{
args
.Browser
.MainFrame
.ExecuteJavaScriptAsync(
"document.body.style.overflow = 'hidden'");
}
}
滚动条在消失之前只显示一秒钟,符合我的目的。
答案 1 :(得分:1)
您可以添加此参数以轻松隐藏滚动条
Brow = new CefSharp.WinForms.ChromiumWebBrowser("https://www.google.com") {
Dock = DockStyle.Top, // Hide scrollbars
};