【发布时间】:2013-11-13 21:33:16
【问题描述】:
我有一个 Windows 窗体应用程序。
表单很大,有滚动条可以查看整个内容。
我需要截取整个表单的屏幕截图(包括由于表单高度而超出屏幕的区域)。
我尝试了以下代码,但它只捕获了屏幕上可见的表单部分:
ScreenCapture sc = new ScreenCapture();
// capture entire screen, and save it to a file
Image img = sc.CaptureScreen();
// display image in a Picture control named imageDisplay
this.imageDisplay.Image = img;
// capture this window, and save it
sc.CaptureWindowToFile(this.Handle,"C:\\temp2.gif",ImageFormat.Gif);
我无法截取整个表单的屏幕截图。
谁能告诉我捕获整个表单的方法,包括由于滚动而隐藏的区域?
【问题讨论】:
-
我不认为有一种自动的方式来做到这一点。您必须手动构建图像,即自己在代码中绘制图像中的每个控件。
-
没有灵丹妙药,但有我的一个想法。您可以根据表单的滚动量拍摄这些照片。例如,您可以先获取前半部分,然后滚动到下半部分并获取其余部分。您必须将整个表单的内容高度除以可见区域高度,这样您才能知道每次需要滚动多少。
-
谢谢你的回复……你是这个意思吗。我需要先拍摄可见区域的屏幕截图,然后向下滚动(使用代码)并再次拍摄屏幕截图..然后合并两个屏幕截图??
标签: c# winforms screenshot