DrawToBitmap从UserControl返回黑色图像

时间:2015-06-25 13:37:10

标签: c# winforms user-controls controls drawtobitmap

我的第一篇帖子就在这里,

我有一个UserControl,包含大约30个控件(标签,文本框等)。 现在我想做一个"截图"它的。 所以我使用了" DrawToBitmap" UserControl中的方法。

这里有一些样本代码

//this is the UserControl with the about 30 controls    
var sampleusercontrol = new SampleUserControl();

var bmp = new Bitmap(sampleusercontrol.Width, sampleusercontrol.Height);
sampleusercontrol.DrawToBitmap(bmp, sampleusercontrol.Bounds);

如果我运行此代码,它会一直返回黑色图像。 我不知道为什么。请帮忙!

编辑:

忘了说UserControl是一个WinForms UserControl

3 个答案:

答案 0 :(得分:1)

这对我来说已经有好几年了,直到它上周开始在制作中返回黑色图像。有趣的是,它刚刚应用了一个新的Windows补丁。我能够找到关于这个问题的帖子:

KB3057839 Has Broken Windows Forms Control.DrawToBitmap() When Called from Application Launched From Windows Service

你没有提到如何创建winforms控件,但在第一种情况下,它来自一个服务启动的winforms应用程序。在Telerik站点上还有一个案例,其中控件在服务器端由IIS实例化以创建PDF文件:

http://www.telerik.com/forums/export-to-pdf-597e04c01b39

尝试检查补丁KB3057839并将其回滚以进行短期修复。希望微软能够通过修复或解决方法做出回应。

答案 1 :(得分:0)

我有同样的问题。最新一轮的ms补丁纠正了这个问题。

答案 2 :(得分:0)

检查控件是否已加载。

我正在努力解决这个问题,但事实证明控件是在另一个标签中,并且无法正确显示,直到我点击标签,然后运行DrawToBitmap