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

标签 c# wpf cefsharp

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

我一直无法找到直接使用 CefSharp 执行此操作的方法。
它似乎没有类似于我习惯使用 native WinForms 浏览器的 ScrollBarsEnabled 的属性。

我想我可以在页面呈现后注入(inject)一些 CSS/JS 以将正文溢出设置为隐藏,但这没有效果。

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'");
    }
}

滚动条在消失前只显示一秒钟,这符合我的目的。

关于c# - 加载网页时,如何让 CefSharp 隐藏垂直和水平滚动条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43742596/

相关文章:

c# - 如何使 .net HttpClient 使用 http 2.0?

c# - NUnit 未运行套件测试

c# - 如何让 StreamReader.ReadLine() 区分 "\r\n"和 "\n"?

wpf - WPF与PRISM 4.0和Unity的工作示例

c# - SomeObjects 的 HashSet 和包含带有 int 参数的函数

wpf - Prism 从区域中删除 ViewModel

WPF 命令与事件的优点/缺点

javascript - 如何从 C# 调用使用 React 运行网页的 CEFSharp

javascript - 使用 javascript 从 CefSharp 浏览器获取文本框值

CefSharp 3 浏览器显示空白页面