C# 加载网页时,如何让CefSharp同时隐藏垂直和水平滚动条?

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

我正在C#WPF应用程序中使用CefSharp 57。
我想隐藏任何给定网页上的垂直和水平滚动条

我无法找到一种直接与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浏览器窗口内的滚动条无关