将表单的屏幕外部分绘制到位图

时间:2013-12-10 20:35:03

标签: c# bitmap drawing

我有一个程序,其目标是以数字方式填写纸质表单,用户填写Windows表单,该表单获取所有数据并填写放置在表单的完整大小图像上的文本框。我的目标是让它捕获整个表单,并在其上放置所有值并将其存储为图像。

问题是对于大多数屏幕而言形式是大的,并且它的底部部分离开屏幕,因此当它被捕获时它缺少底部部分。我试过截屏它,目前正在使用以下代码将其直接绘制到位图而没有运气。

 using (var bitmap = new Bitmap(this.Width, this.Height))
        {
            this.DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height));
            bitmap.Save(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\imagetest.jpeg");
        }

我可能会考虑另外一种方法来填写表单,例如捕获剩余部分并将其拼接到顶部,但我觉得他们必须更好地解决它。

有关捕获未绘制的表单的任何建议吗?

1 个答案:

答案 0 :(得分:1)

听起来你似乎试图将填写好的表单值封装在表单顶部作为图像背景? (如我错了请纠正我)。这不是最好的方法,你想要做的是让用户填写表单的所有必填字段,当他们点击提交按钮时,将所有表单值保存为字符串。

然后,您希望以Bitmap对象的形式将表单图像加载到内存中。然后使用DrawString方法从表单中的内容中的图像上的正确x,y坐标处绘制字符串。