2009-04-24 13 views
8

He intentado durante los últimos días obtener el alto de una página web desde la propiedad del documento de un control WebBrowser.Obtener la altura de la página desde un control WinForms WebBrowser

Aquí está mi último intento.

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

He tratado de averiguar la altura máxima de la página mediante la búsqueda de la parte inferior del elemento de compensación más baja de la página.

El problema es que esto supera la longitud real de la página en aproximadamente 500 px en la mayoría de los casos.

¿Alguien tiene alguna idea? ¡No puedo creer lo difícil que es obtener el alto de una página!

Respuesta

1

encontrar el cuerpo etiqueta y obtener el OffsetRectangle.Bottom de ese elemento. Esto te dará la altura de la página.

+0

que no funciona para mí. Siempre me da el tamaño del control del navegador, no de los contenidos – Niki

16

Esto funcionó para mí:

webBrowser.Document.Body.ScrollRectangle.Height 
+0

Brilliant. Gracias. – NLV

+0

Ok, pero cuando la página está alojada en una máquina diferente, no está funcionando. Si la página está alojada en mi máquina local, tanto la altura como el ancho se representan correctamente. ¿Alguna idea? – NLV

+0

¿Has probado esto en http://www.regular-expressions.info/? Devuelve 122 como altura de desplazamiento pero el código @Morgeh lo hace a la derecha – CodeWrite

Cuestiones relacionadas