如何将图纸(例如矩形,圆形)从面板保存到图像中?
我尝试过这段代码,但我不知道为什么它只给我白色图像:
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);
}
答案 0 :(得分:1)
不要使用CreateGraphics绘制图形,因为它只是一个临时图形(它会被其他窗口删除或者如果你最小化表格等)。
使用面板的绘画事件来绘图:
panel1.Paint += panel1_Paint;
void panel1_Paint(object sender, PaintEventArgs e) {
// draw stuff with e.Graphics
}
调用面板的Invalidate方法,使paint方法再次被调用。