DrawToBitmap returns 来自用户控件的黑色图像

DrawToBitmap returns black Image from UserControl

我的第一个 post 就在这里,

我有一个包含大约 30 个控件(标签、文本框等)的 UserControl。 现在我想制作一个"screenshot"。 所以我使用了 UserControl 中的 "DrawToBitmap" 方法。

这里是一些示例代码

//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);

如果我 运行 这段代码,它 returns 我一直都是黑色图像。 我不知道为什么。请帮忙!

编辑:

忘了说 UserControl 是一个 WinForms UserControl

这多年来一直为我工作,直到上周它开始在生产中返回黑色图像。有趣的是,就在我们应用新的 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 并将其回滚以获得短期修复。希望 Microsoft 能以修复或解决方法作为回应。

我遇到了同样的问题。最新一轮的 ms 补丁修正了这个问题。

检查控件是否已加载。

我一直在努力解决这个问题,但事实证明该控件位于另一个选项卡中,并且在我单击该选项卡之前不会正确显示,然后 运行 DrawToBitmap.