代码之家  ›  专栏  ›  技术社区  ›  Kevin Montrose

使用WPF WebBrowser阻止滚动条显示内容

  •  10
  • Kevin Montrose  · 技术社区  · 15 年前

    我用的是WPF WebBrowser 组件来显示一些非常简单的HTML内容。但是,由于我不知道内容的大小,所以当我加载某些数据集时,我目前正在控件上获取滚动条。

    基本上,我如何强制(或以其他方式影响同等的强制)WebBrowser在大小上进行扩展,以便在不需要滚动条的情况下显示所有内容?

    2 回复  |  直到 9 年前
        1
  •  7
  •   serge_gubenko    15 年前

    我想您可以通过WebBrowser组件的文档属性(应该是mshtml.htmldocument类型)来获取其内容的宽度和高度。我相信您应该能够使用body或documentelement属性来获得所需的大小;smth如下:

    mshtml.HTMLDocument htmlDoc = webBrowser.Document as mshtml.HTMLDocument;
    if (htmlDoc != null && htmlDoc.body != null)
    {
        mshtml.IHTMLElement2 body = (mshtml.IHTMLElement2)htmlDoc.body;
        webBrowser.Width = body.scrollWidth;
        webBrowser.Height = body.scrollHeight;
    }
    

    希望这有帮助,问候

        2
  •  6
  •   Assaf S.    15 年前

    前一个解决方案的问题是,它会更改控件的大小,并且由于浏览器控件不能被剪裁,并且总是位于其他WPF元素之上,因此它可能会覆盖其他元素。

    这是我的解决方案:

    Dim body = CType(WebBrowserControl.Document, mshtml.HTMLDocumentClass)
    body.documentElement.style.overflow = "hidden"
    

    当做,

    阿萨夫