2015-06-25 68 views
0

這裏返回黑色圖像我的第一篇所以這裏去,DrawToBitmap從用戶控件

我有大約30控件(標籤,文本框等),一個用戶控件。 現在我想對它做一個「截圖」。 所以我使用UserControl的「DrawToBitmap」方法。

這裏是一些samplecode

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

如果我運行這段代碼,它返回了我黑色的圖像所有的時間。 我不知道爲什麼。請幫忙!

編輯:

忘了說,用戶控件是一個WinForms用戶控件

+0

我有同樣的問題。對我來說,解決方案是在創建位圖之前執行sampleusercontrol.Arrange(0,0,sampleusercontrol.Width,sampleusercontrol.height)。我不知道爲什麼這個工作,但它確實... – Ralt

+0

['DrawToBitmap'](http://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/Control.cs, 4441da5479e7a6f8)只需發送'WM_PRINT'消息。 'Arrange'是wpf函數,爲什麼不[以正確的方式](http://stackoverflow.com/a/24478299/1997232)? – Sinatr

+0

對不起,我忘了說,我正在討論的usercontrol,是一個winforms usercontrol –

回答

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,並回滾一個短期修復。希望微軟能夠在未來有一個解決方案或解決方法。

+0

這樣做!謝謝:-) –

+0

Windows KB3057839更新破壞了許多軟件,包括Putty,Telerik,GE軟件,Quicken 2015以及其他我沒有提及的其他軟件。 – ConfusedDeer

+0

我能夠確認新修補程序KB3070102覆蓋了前一個修補程序並修復了此問題。 – LouD

0

我有同樣的問題。最新一輪的ms補丁糾正了這個問題。

0

檢查控件是否已加載。

我一直在努力,但事實證明,控制是在另一個選項卡,並不會正確顯示,直到我點擊了該選項卡,然後運行DrawToBitmap