如何从C#中的绘制面板获取位图

我有一个面板,我使用它的Graphics gr = panel1.CreateGraphics()来绘制线条和其他东西。 我需要获得点击鼠标的点的像素颜色,所以我决定使用Bitmap的GetPixel方法。 我这样创建位图:

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

但即使我画了任何东西,我也只得到白色矩形。 有什么问题?

只有DrawToBitmap事件中绘制的内容DrawToBitmapDrawToBitmap呈现。 而不是显式调用panel1.CreateGraphics() ,处理面板的Paint事件并使用e.Graphics进行e.Graphics