DrawToBitmap возвращает черное изображение из UserControl

Мой первый пост здесь, так что здесь идет,

У меня есть 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 ответа

Решение

Это работало для меня годами, пока на прошлой неделе в производстве не появилось черное изображение. Интересно, что это было сразу после того, как мы применили новый патч для Windows. Мне удалось найти это сообщение о проблеме:

KB3057839 сломал Windows Forms Control.DrawToBitmap() при вызове из приложения, запущенного из службы Windows

Вы не упомянули, как создавался этот элемент управления winforms, но в первом случае это было из приложения winforms, запущенного сервисом. На сайте Telerik также есть случай, когда IIS создал элемент управления на стороне сервера для создания файла PDF:

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

Попробуйте проверить исправление KB3057839 и откатить его на короткое время. Надеемся, что Microsoft ответит исправлением или обходным решением.

Я была такая же проблема. Последний раунд исправлений MS исправил проблему.

Убедитесь, что элемент управления был загружен.

Я боролся с этим, но оказалось, что элемент управления находится в другой вкладке и не будет отображаться правильно, пока я не нажму на вкладку, а затем запустите DrawToBitmap,

Другие вопросы по тегам