I use WebBrowser in some DLL to make screenshots.
The main problem that it is not maximized sometimes and I guess it takes settigns of the Internet Explorer.
So my question is how to maximize WebBrowser control via C#?
Thank you!
Rectangle r = new Rectangle();
r.X = cropToRectangle.X;
r.Y = cropToRectangle.Y;
r.Width = cropToRectangle.Width;
r.Height = cropToRectangle.Height;
Point p = new Point();
p.X = scrollTo.X;
p.Y = scrollTo.Y;
var sb = Math.Max(SystemInformation.VerticalScrollBarWidth, SystemInformation.HorizontalScrollBarHeight);
var size = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
using (var form =
new FocuslessForm
{
Width = size.Width + sb,
Height = size.Height + sb,
Padding = new Padding(0),
Margin = new Padding(0),
FormBorderStyle = FormBorderStyle.None,
Opacity = 0,
TabStop = false,
ShowInTaskbar = false
})
{
var webBrowser1 = new WebBrowser
{
Padding = new Padding(0),
Margin = new Padding(0),
Dock = DockStyle.Fill,
Url = url,
TabStop = false
};
form.Controls.Add(webBrowser1);
var finished = false;
webBrowser1.DocumentCompleted += delegate
{
webBrowser1.Document.Window.ScrollTo(p);
finished = true;
};
form.Show();
while (!finished)
{
Application.DoEvents();
}
image = CaptureBrowserScreenshot(webBrowser1, r);
form.Close();
}
Well, the WebBrowser is a control that is embedded into your own program’s window; it doesn’t launch IE as a separate process (though it does hook into IE for the renderer and other critical code). So, the control’s location and size is dependent on where you embed it.
I see you are fill-docking the control to the form. This is a good first step. Now, you must make sure the WebBrowser control is being added to the Controls hierarchy of the Form (so it’ll show up), and then you must maximize that Form. The way to do this is to set the WindowState property of the Form to WindowState.Maximized.