2009-04-24 14 views
8

私は最後の数日間、WebBrowserコントロールのDocumentプロパティからWebページの高さを取得しようとしていました。WinForms WebBrowserコントロールからページの高さを取得する

これは私の最新の試みです。

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; 
    } 
} 

私は、ページ内の最低の要素のオフセット下を見つけることによって、ページの最大高さをうまくしようとしました。

これは、ほとんどの場合、ページの実際の長さを約500pxぶつけてしまうという問題です。

誰でもアイデアがありますか?私はページの高さを得ることがどれほど難しいか信じられない!

答えて

1

BODYタグを見つけ、OffsetRectangle.Bottomその要素のを取得します。これはあなたにページの高さを与えます。

+0

を私のために動作しません。それは常に私にブラウザのコントロールのサイズではなく、コンテンツの – Niki

16

これが私の仕事:

webBrowser.Document.Body.ScrollRectangle.Height 
+0

ブリリアントです。ありがとう。 – NLV

+0

Okieしかし、ページが別のマシンでホストされている場合、そのページは機能していません。ページがローカルマシンでホストされている場合は、高さと幅の両方が正しく表示されます。どんな洞察? – NLV

+0

これはhttp://www.regular-expressions.info/でこれを試したことがありますか?それはスクロールの高さとして122を返しますが、@Morgehコードはそれを正しく行います。 – CodeWrite

関連する問題