0

我在这里的第一篇文章,所以这里是,

我有一个包含大约 30 个控件(标签、文本框等)的 UserControl。现在我想做一个“截图”。所以我使用了 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);

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

编辑:

忘了说 UserControl 是 WinForms UserControl

4

3 回答 3

1

这已经为我工作了多年,直到上周它开始在生产中返回黑色图像。有趣的是,就在我们应用了新的 Windows 补丁之后。我能够找到有关该问题的帖子:

KB3057839 从 Windows 服务启动的应用程序调用时已损坏 Windows 窗体 Control.DrawToBitmap()

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

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

尝试检查补丁 KB3057839 并将其回滚以进行短期修复。希望微软将在未来提供修复或解决方法。

于 2015-06-25T19:23:21.140 回答
0

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

于 2015-07-16T15:22:50.473 回答
0

检查控件是否已加载。

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

于 2017-05-07T22:35:31.110 回答