I have a WebBrowser in my form that accesses a website that is too wide for the control. I would like to know if there is a way to resize the control to fit the website. It seems simple, but i have not found a way yet. I know how to resize the control, I just need to find the width of the website. Just like when you press the green button in safari it automatically resized the window to the correct size.
5 Answers
You should be able to access the size of the WebBrowser's Document and get it's size through the WebBrowser.Document.Window.Size.
I would use the WebBrowser Controls's DocumentCompleted event to wait until the page is loaded then use your resize code to resize the webControl container with this size.
Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
WebBrowser1.Size = WebBrowser1.Document.Body.ScrollRectangle.Size
End Sub
Answered here: use WebBrowser.Document.Body.ScrollRectangle.Size instead of WebBrowser.Document.Window.Size. Working like a charm for me.
Your best bet might be to just make the WebBrowser use as much space (Dock.Fill) as possible on the form from the get-go, so if the user full-screen maximizes the app they get plenty of space, and if they want it smaller for smaller sites they can resize your app however they want. This is how all browsers work.