C# 加载网页时,如何让CefSharp同时隐藏垂直和水平滚动条?
我正在C#WPF应用程序中使用CefSharp 57。C# 加载网页时,如何让CefSharp同时隐藏垂直和水平滚动条?,c#,wpf,cefsharp,C#,Wpf,Cefsharp,我正在C#WPF应用程序中使用CefSharp 57。 我想隐藏任何给定网页上的垂直和水平滚动条 我无法找到一种直接与CefSharp合作的方法。 它似乎没有一个类似于我在本机WinForms浏览器中使用的ScrollBarsEnabled的属性 我想我可以在页面呈现后注入一些CSS/JS,将body overflow设置为hidden,但这没有效果 private void OnBrowserFrameLoadEnd(object sender, FrameLoadEndEventArgs a
我想隐藏任何给定网页上的垂直和水平滚动条 我无法找到一种直接与CefSharp合作的方法。
它似乎没有一个类似于我在本机WinForms浏览器中使用的
ScrollBarsEnabled
的属性
我想我可以在页面呈现后注入一些CSS/JS,将body overflow设置为hidden,但这没有效果
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隐藏任何给定页面上的垂直和水平滚动条?我最初显示的代码是正确的,我只需要简化我提供的脚本:
WebBrowser.FrameLoadEnd += OnBrowserFrameLoadEnd;
private void OnBrowserFrameLoadEnd(object sender, FrameLoadEndEventArgs args)
{
if (args.Frame.IsMain)
{
args
.Browser
.MainFrame
.ExecuteJavaScriptAsync(
"document.body.style.overflow = 'hidden'");
}
}
滚动条在消失之前只显示一秒钟,这符合我的目的。您可以添加此参数以轻松隐藏滚动条
Brow = new CefSharp.WinForms.ChromiumWebBrowser("https://www.google.com") {
Dock = DockStyle.Top, // Hide scrollbars
};
使用JavaScript/css是最简单的选择。打开devtools并手动执行脚本,确保其有效。此答案适用于winforms版本。CefSharp.Wpf.ChromiumWebBrowser没有Dock属性。此代码不适用于我。在我看来,Dock属性与Cef浏览器窗口内的滚动条无关