public static Image CreateScreenshot(ViewportBase viewport, int width, int height) { var shot = new ScreenshotViewportListener(viewport); var parent = GetParentSplitControl(viewport); if (parent == null) { return(null); } var pos = parent.GetPositionFromControl(viewport); var form = new Form(); //form.FormBorderStyle = FormBorderStyle.None; form.TopMost = true; form.Width = width; form.Height = height; form.WindowState = FormWindowState.Maximized; var panel = new Panel { Width = width, Height = height }; form.Controls.Add(panel); panel.Controls.Add(viewport); viewport.Dock = DockStyle.Top | DockStyle.Left; viewport.Width = width; viewport.Height = height; //form.ShowDialog(); viewport.Listeners.Add(shot); viewport.UpdateNextFrameImmediately(); viewport.Listeners.Remove(shot); viewport.Dock = DockStyle.Fill; parent.Controls.Add(viewport, pos.Column, pos.Row); return(shot.Screenshot); }
public static Image CreateScreenshot(ViewportBase viewport, int width, int height) { var shot = new ScreenshotViewportListener(viewport); var parent = GetParentSplitControl(viewport); if (parent == null) return null; var pos = parent.GetPositionFromControl(viewport); var form = new Form(); //form.FormBorderStyle = FormBorderStyle.None; form.TopMost = true; form.Width = width; form.Height = height; form.WindowState = FormWindowState.Maximized; var panel = new Panel {Width = width, Height = height}; form.Controls.Add(panel); panel.Controls.Add(viewport); viewport.Dock = DockStyle.Top | DockStyle.Left; viewport.Width = width; viewport.Height = height; //form.ShowDialog(); viewport.Listeners.Add(shot); viewport.UpdateNextFrameImmediately(); viewport.Listeners.Remove(shot); viewport.Dock = DockStyle.Fill; parent.Controls.Add(viewport, pos.Column, pos.Row); return shot.Screenshot; }