Beispiel #1
0
        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);
        }
Beispiel #2
0
        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;
        }