у меня есть элемент управления, который является плоттером, который можно прокручивать. После того, как плоттер закончит печать, он может прокручивать изображение следующим образом:
Мой плоттер работает в режиме реального времени, т.е. это означает, что он рисует с течением времени, а не статический плоттер (тот, который вы вводите значения вручную). После того, как я остановил плоттер, я могу прокрутить его, чтобы увидеть результаты. Однако я хочу сохранить плоттер в изображение, которое я пытаюсь сделать с помощью метода печати экрана. Но то, что я смог захватить, это только видимая часть плоттера, но не невидимая часть плоттера (потому что она нуждается в прокрутке). Надеюсь, теперь стало понятнее. Код для экрана печати:
// 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);
}
Большое спасибо.
Invalidate
в событиях прокрутки. - person Sanjeevakumar Hiremath   schedule 28.03.2011