2014-01-09 171 views
0

如何將面板中的圖形(如矩形,圓形)保存爲圖像?如何將面板中的圖形(如矩形,圓形)保存爲圖像?

我曾嘗試這個代碼,但我不知道爲什麼只給我總是白色圖像:

SaveFileDialog saveFileDialog = new SaveFileDialog(); 
saveFileDialog.DefaultExt = "bmp"; 
saveFileDialog.Filter = "Bitmap files|*.bmp"; 
if (saveFileDialog.ShowDialog() == DialogResult.OK) 
{ 
    int width = panel1.Width; 
    int height = panel1.Height; 
    Bitmap bitMap = new Bitmap(panel1.Width, panel1.Height); 
    panel1.DrawToBitmap(bitMap, new Rectangle(0, 0, panel1.Width, panel1.Height)); 
    bitMap.Save(saveFileDialog.FileName); 
} 
+1

Dupe我認爲http://stackoverflow.com/questions/11015884/drawtobitmap-on-panel-is-blank – Bit

+2

你如何繪製面板控制?不要使用CreateGraphics。 – LarsTech

+0

是的我在點擊事件中使用了createGraphics,如果我沒有使用它,那麼我應該使用什麼? – user3170648

回答

1

不要使用的createGraphics繪製您的圖形,因爲這只是一個臨時繪圖(它會被其他窗口擦除,或者如果你最小化窗體等)。

使用面板上的漆事件做你的繪圖:

panel1.Paint += panel1_Paint; 

void panel1_Paint(object sender, PaintEventArgs e) { 
    // draw stuff with e.Graphics 
} 

呼叫面板的Invalidate方法使paint方法再次調用。

相關問題