2011-03-28 62 views
2

我有一个控件,它是可滚动的绘图仪。绘图完成绘制后,它能够滚动就像这样: enter image description hereC#打印屏幕可滚动控件

我的绘图仪是一个实时的绘图仪,即意味着它绘制随着时间的推移,它不是一个静态的绘图仪(其中一个ü把在手动值)。在我停止绘图仪之后,我可以在绘图仪上滚动以查看结果。但是,我想将绘图仪保存到一个图像中,我正在试图使用打印屏幕方法。但是我能够捕获的只是绘图仪的可见部分,而不是绘图仪的不可见部分(这是因为它需要滚动)。我希望现在更清楚。 打印屏幕的代码是:

// 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); 
     } 

非常感谢。

+2

请输入密码?如果它是滚动事件上的控件调用['Invalidate'](http://msdn.microsoft.com/en-us/library/system.windows.forms.control.invalidate(VS.71).aspx)。 – 2011-03-28 07:19:16

+0

您的意思是当您滚动控件时,您会看到空白的空间?你用什么代码来绘制情节? – 2011-03-28 07:21:31

+0

对此感到抱歉。编辑我的问题。 – cnewbie 2011-03-28 08:27:36

回答

0
+2

你怎么知道这个没有看到他的代码? – 2011-03-28 07:22:42

+0

好吧,我对他的问题的解释是他能够绘制他需要绘制的内容,但是他不能在控制器的不可见区域打印屏幕,这是一种解释并且可能是错误的,但是因为他在标题... – 2011-03-28 07:39:27

+0

够公平的,我尝试推OP给一个更好的问题,以避免解释:)忽略我的意见。 – 2011-03-28 07:42:48