如何将图纸(例如矩形,圆形)从面板保存到图像中?

时间:2014-01-09 18:43:45

标签: c# winforms savefiledialog

如何将图纸(例如矩形,圆形)从面板保存到图像中?

我尝试过这段代码,但我不知道为什么它只给我白色图像:

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 个答案:

答案 0 :(得分:1)

不要使用CreateGraphics绘制图形,因为它只是一个临时图形(它会被其他窗口删除或者如果你最小化表格等)。

使用面板的绘画事件来绘图:

panel1.Paint += panel1_Paint;

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

调用面板的Invalidate方法,使paint方法再次被调用。