禁用WPF WebBrowser滚动条

Alv*_*vin 12 wpf xaml

我试图隐藏webbrowser滚动条,但它仍然可见.

XAML:

<WebBrowser Name="wb" Width="700" Height="600" 
                        OverridesDefaultStyle="False"
                        ScrollViewer.CanContentScroll="False"
                        ScrollViewer.HorizontalScrollBarVisibility="Hidden" 
                        ScrollViewer.VerticalScrollBarVisibility="Hidden" />
Run Code Online (Sandbox Code Playgroud)

谢谢.

小智 19

这对我有用:

<WebBrowser LoadCompleted="wb_LoadCompleted"></WebBrowser>           

void wb_LoadCompleted(object sender, NavigationEventArgs e)
    {
        string script = "document.body.style.overflow ='hidden'";
        WebBrowser wb = (WebBrowser)sender;
        wb.InvokeScript("execScript", new Object[] { script, "JavaScript" });
    }
Run Code Online (Sandbox Code Playgroud)

这样你就不需要mshtml了

  • @befstrat 的解决方案不起作用,我不得不使用 string script = "document.documentElement.style.overflow ='hidden'" 更改脚本 (3认同)

Sis*_*phe 8

不理想,但它的工作原理:

将Microsoft.mshtml添加到项目引用中.然后将您的xaml更改为:

<WebBrowser Name="wb" Width="700" Height="600" 
            OverridesDefaultStyle="False"
            ScrollViewer.CanContentScroll="False"
            ScrollViewer.HorizontalScrollBarVisibility="Hidden" 
            ScrollViewer.VerticalScrollBarVisibility="Hidden"
            LoadCompleted="wb_LoadCompleted"></WebBrowser>
Run Code Online (Sandbox Code Playgroud)

并在您的代码后面:

private void wb_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
    mshtml.IHTMLDocument2 dom = (mshtml.IHTMLDocument2)wb.Document;
    dom.body.style.overflow = "hidden";
}
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用,滚动条仍然可见. (3认同)
  • 滚动条仍在那里. (2认同)

小智 5

添加scroll="no"到 htmlbody标签对我有用,而这里的其他建议没有。