从比屏幕更高的控件绘制位图

时间:2011-03-16 20:56:55

标签: c# winforms controls bitmap

我在将C#控件保存到位图文件时遇到了一些问题。所讨论的控件是一种绘图表面,用户可以在其上书写文本,绘制图片和绘制框。控件可调整大小并可拖动。发生的情况是,当控件非常大并且在屏幕上不完全可见时,控件的不可见部分将被保存在位图上。用于生成位图的代码非常简单:

Bitmap bitmap = new Bitmap(myControl.Width, myControl.Height);
myControl.DrawToBitmap(bitmap);

我尝试了以下方法尝试使用完全绘制的位图,但没有任何成功:

myControl.Invalidate(myControl.ClientRectangle, true);
myControl.Refresh();
myControl.Update();
Application.DoEvents();

我无法缩小控件以使其完全可见,因为分辨率和图像质量对于该项目非常重要。事实上,我实际上是在努力扩大图像以提高图像的质量。有什么方法我不知道从控件生成图像?

坦克你。

2 个答案:

答案 0 :(得分:1)

DrawToBitmap有局限性,并不总是按预期工作。请尝试使用原生 GDI +

这是example

答案 1 :(得分:0)

也许我的回答Capturing a Window that is hidden or minimized可以帮到你?