C#打印屏幕可滚动控件
我有一个控件,它是可滚动的绘图仪。绘图完成绘制后,它能够滚动就像这样: C#打印屏幕可滚动控件
我的绘图仪是一个实时的绘图仪,即意味着它绘制随着时间的推移,它不是一个静态的绘图仪(其中一个ü把在手动值)。在我停止绘图仪之后,我可以在绘图仪上滚动以查看结果。但是,我想将绘图仪保存到一个图像中,我正在试图使用打印屏幕方法。但是我能够捕获的只是绘图仪的可见部分,而不是绘图仪的不可见部分(这是因为它需要滚动)。我希望现在更清楚。 打印屏幕的代码是:
// 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);
}
非常感谢。
看看这里:http://www.eggheadcafe.com/community/aspnet/2/10201852/how-to-print-window-form-usig-cnet.aspx你应该调用Win32 API PrintWindow。
你怎么知道这个没有看到他的代码? – 2011-03-28 07:22:42
好吧,我对他的问题的解释是他能够绘制他需要绘制的内容,但是他不能在控制器的不可见区域打印屏幕,这是一种解释并且可能是错误的,但是因为他在标题... – 2011-03-28 07:39:27
够公平的,我尝试推OP给一个更好的问题,以避免解释:)忽略我的意见。 – 2011-03-28 07:42:48
请输入密码?如果它是滚动事件上的控件调用['Invalidate'](http://msdn.microsoft.com/en-us/library/system.windows.forms.control.invalidate(VS.71).aspx)。 – 2011-03-28 07:19:16
您的意思是当您滚动控件时,您会看到空白的空间?你用什么代码来绘制情节? – 2011-03-28 07:21:31
对此感到抱歉。编辑我的问题。 – cnewbie 2011-03-28 08:27:36