[英]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.