繁体   English   中英

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

[英]How can I save my drawings(such as rectangle, circle) from panel into image?

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

我已经尝试过此代码,但我不知道为什么它总是只给我白色图像:

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);
}

不要使用CreateGraphics来绘制图形,因为那只是一个临时图形(其他窗口或最小化表单等会删除它)。

使用面板的绘制事件进行绘制:

panel1.Paint += panel1_Paint;

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

调用面板的Invalidate方法以再次调用paint方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM