【发布时间】:2010-12-27 01:30:56
【问题描述】:
我正在使用 WPF WebBrowser 组件来显示一些非常简单的 HTML 内容。但是,由于我事先不知道内容大小,因此当我加载某些数据集时,我目前在控件上会出现滚动条。
基本上,我如何强制(或以其他方式实现强制)WebBrowser 扩大大小,以便在不需要滚动条的情况下显示所有内容?
【问题讨论】:
标签: c# wpf webbrowser-control scrollbar
我正在使用 WPF WebBrowser 组件来显示一些非常简单的 HTML 内容。但是,由于我事先不知道内容大小,因此当我加载某些数据集时,我目前在控件上会出现滚动条。
基本上,我如何强制(或以其他方式实现强制)WebBrowser 扩大大小,以便在不需要滚动条的情况下显示所有内容?
【问题讨论】:
标签: c# wpf webbrowser-control scrollbar
以前的解决方案的问题是它改变了控件的大小,并且由于浏览器控件不能被裁剪并且总是在其他 WPF 元素之上,它可能会覆盖其他元素。
这是我的解决方案:
Dim body = CType(WebBrowserControl.Document, mshtml.HTMLDocumentClass)
body.documentElement.style.overflow = "hidden"
问候,
阿萨夫
【讨论】:
我猜你可以通过它的 Document 属性获取 webbrowser 组件内容的宽度和高度,该属性应该是 mshtml.HTMLDocument 类型。我相信您应该能够使用 body 或 documentElement 属性来获得所需的大小;像这样:
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;
}
希望这有帮助,问候
【讨论】:
WebBrowser.NavigateToString,所有这些文件都在 Loaded 事件中发生。
Loaded和LoadCompleted。