2011-12-18 88 views
3

我有一個面板,我使用它的Graphics gr = panel1.CreateGraphics()來繪製線條和其他東西。我需要獲得點擊鼠標點的像素顏色,所以我決定使用位圖的GetPixel方法。我用這種方式創建位圖:如何從C中的繪製面板獲取位圖

Bitmap b = new Bitmap(width, height);    
panel1.DrawToBitmap(b, new Rectangle(0, 0, width, height)); 
b.Save("D:/aaa.bmp"); 

但是即使繪製了任何東西,我也只能得到白色矩形。有什麼問題?

+0

可能的重複http://stackoverflow.com/questions/1836338/saving-panel-as-an-image – 2011-12-18 18:36:03

+1

最小化窗體並恢復它,看看爲什麼你不應該使用CreateGraphics()。 – 2011-12-18 18:46:56

回答

2

只有在Paint事件中繪製的事物將由DrawToBitmap呈現。而不是明確呼叫panel1.CreateGraphics(),處理面板的Paint事件,並使用e.Graphics進行繪圖。