2011-12-18 8 views
3

私はパネルを持っており、グラフィックスgr = panel1.CreateGraphics()を使用して線などを描画します。私はマウスがクリックされたポイントのピクセルカラーを取得する必要があるので、私はBitmapの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 –

+1

フォームを最小化し、それを復元してCreateGraphics()を使用しない理由を確認します。 –

答えて

2

Paintイベントで描画されるものだけがDrawToBitmapによってレンダリングされます。 panel1.CreateGraphics()を明示的に呼び出す代わりに、パネルのPaintイベントを処理し、e.Graphicsを使用して図面を作成します。

関連する問題