我有一个用户控件,该控件显示车辆的车牌号(它包含背景图像和一些文本框),我使用DrawToBitmap()方法获取此控件的位图并在我的表单上显示该位图,在Windows 7上运行良好但是在Windows XP Service Pack 3中,仅绘制背景图像,而未绘制文本框中的文本,我该怎么办?

var clt = new ControlLisenceTouch();Bitmap b = new Bitmap(clt.Width, clt.Height);
clt.License = License.FromCar(someCar);
clt.Invalidate(true);
clt.DrawToBitmap(b, Rectangle.FromLTRB(0, 0, clt.Width, clt.Height));
pictureBox1.Image = b;

最佳答案

这个人也有同样的问题,虽然答案不是完美的,但确实为他做了。这里最大的问题是,如果另一个窗口覆盖了您的控件,那么也会显示该窗口。看我的答案,第三个编辑显示了截屏,并从中裁剪出控件。

How can I get a screenshot of control? DrawToBitmap not working

根据http://msdn.microsoft.com/en-us/library/system.windows.forms.control.drawtobitmap.aspx
完全支持Windows XP sp3

关于c# - Windows XP上的DrawToBitmap,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10894921/

10-10 08:14