2009-04-24 3 views
8

Ho cercato per gli ultimi giorni di ottenere l'altezza di una pagina Web dalla proprietà Documento di un controllo WebBrowser.Ottenere l'altezza della pagina da un controllo WebBrowser di WinForms

Ecco il mio ultimo tentativo.

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

Ho cercato di capire l'altezza massima della pagina trovando il fondo di offset dell'elemento più basso nella pagina.

Il problema è che questa operazione scatta la lunghezza effettiva della pagina di circa 500 px nella maggior parte dei casi.

Qualcuno ha qualche idea? Non posso credere quanto sia difficile solo ottenere l'altezza di una pagina!

risposta

1

trovare il corpo tag e ottenere il OffsetRectangle.Bottom di tale elemento. Questo ti darà l'altezza della pagina.

+0

che non funziona per me. Mi dà sempre la dimensione del controllo del browser, non del contenuto – Niki

16

questo ha funzionato per me:

webBrowser.Document.Body.ScrollRectangle.Height 
+0

brillante. Grazie. – NLV

+0

Ok, ma quando la pagina è ospitata su una macchina diversa non funziona. Se la pagina è ospitata nel mio computer locale, l'altezza e la larghezza vengono visualizzate correttamente. Qualche intuizione? – NLV

+0

Hai mai provato questo su http://www.regular-expressions.info/? Restituisce 122 come altezza di scorrimento ma il codice @Morgeh lo fa Right – CodeWrite