C # прокручиваемый экран управления печатью - PullRequest
2 голосов
/ 28 марта 2011

У меня есть элемент управления, который является прокручиваемым.После того, как плоттер завершил черчение, он может прокручиваться так: enter image description here

Мой плоттер - это плоттер в реальном времени, то есть он строит графики с течением времени и не является статическимвы вводите значения вручную).После того, как я остановил плоттер, я могу прокрутить плоттер, чтобы увидеть результаты.Тем не менее, я хочу сохранить плоттер в изображение, что я пытаюсь сделать, используя метод печати экрана.Но я смог захватить только видимую часть плоттера, но не невидимую часть плоттера (потому что он нуждается в прокрутке).Надеюсь, теперь стало понятнее.Код для экрана печати:

// Set the bitmap object to the size of the screen
        bmpScreenshot = new Bitmap(panel2.Bounds.Width, panel2.Bounds.Height, PixelFormat.Format32bppArgb);
        // Create a graphics object from the bitmap
        gfxScreenshot = Graphics.FromImage(bmpScreenshot);

        Point p = this.PointToScreen(new Point(panel2.Bounds.X, panel2.Bounds.Y));
        gfxScreenshot.CopyFromScreen(p.X, p.Y, 0, 0,
                         panel2.Bounds.Size, CopyPixelOperation.SourceCopy);


        SaveFileDialog saveImageDialog = new SaveFileDialog();
        saveImageDialog.Title = "Select output file:";
        saveImageDialog.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif";
        if (saveImageDialog.ShowDialog() == DialogResult.OK)
        {
            bmpScreenshot.Save(saveImageDialog.FileName, ImageFormat.Jpeg);
        }

Большое спасибо.

1 Ответ

0 голосов
/ 28 марта 2011

Посмотрите здесь: http://www.eggheadcafe.com/community/aspnet/2/10201852/how-to-print-window-form-usig-cnet.aspx Вы должны вызвать Win32 API PrintWindow.

...