检测WebBrowser控件中HTML内容的实际大小

时间:2010-04-26 19:58:35

标签: c# .net webbrowser-control

有没有办法检测WebBrowser控件中的内容高度/宽度?我想将内容保存到图像中,但只保留实际内容的大小。

提前谢谢。

3 个答案:

答案 0 :(得分:4)

我相信你可以从以下属性中获取它:

myWebBrowser.Document.ScrollRectangle.Size;

成为System.Drawing.Size对象。

答案 1 :(得分:1)

The document recalculate the layout each time the size of the browser window changes, so it does not really have a fixed size.

您可以使用黄金分割搜索来查找足够大的最小窗口大小以包含文档,但这是一项CPU密集型任务。

答案 2 :(得分:0)

循环元素选择最大高度/宽度。我在 documentCompleted 事件之后使用了这个

    //fit to content  -get size **after documentCompleted**
    var wbAll = webBrowser.Document.All.Cast<HtmlElement>();
    var maxWidth = wbAll.Max(x => Math.Max(x.ClientRectangle.Width, x.ScrollRectangle.Width));
    var maxHeight =wbAll.Max(x => Math.Max(x.ClientRectangle.Height, x.ScrollRectangle.Height));

    webBrowser.Height = maxHeight;
    webBrowser.Width = maxWidth;