9

最近几天我一直在尝试从WebBrowser控件的 Document 属性中获取网页的高度。

这是我最近的尝试。

HtmlElementCollection children = webBrowser.Document.All;
int maxOffset = 0;


foreach (HtmlElement child in children) {
    int bottom = 0;
    bottom = child.OffsetRectangle.Bottom;
    if (bottom > maxOffset) {
        maxOffset = bottom;
        pageHeight = maxOffset;
    }
}

我试图通过找到页面中最低元素的偏移底部来计算页面的最大高度。

问题是在大多数情况下,这会超出页面的实际长度约 500 像素。

有人有什么想法吗?我无法相信仅仅获得一页的高度是多么困难!

4

3 回答 3

16

这对我有用:

webBrowser.Document.Body.ScrollRectangle.Height
于 2010-08-26T20:01:40.820 回答
1

找到BODY标签并获取该元素的OffsetRectangle.Bottom。这将为您提供页面的高度。

于 2009-05-19T14:19:49.653 回答
0

webBrowser.Document.Body.ScrollRectangle.Height 给了我一个剪纸页。我知道为什么。

我是这样做的。

循环元素选择最大高度/宽度。我在 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;
于 2021-06-23T08:53:41.433 回答