我正在尝试在Windows窗体(C#)中创建一个绘图应用程序。它有不同的标签,在一个标签中有一个pictureBox作为我的绘图表面。我通过使用以下代码从屏幕复制来保存图像:
Bitmap bmpz = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics gSaveAs = Graphics.FromImage(bmpz);
Rectangle rectSaveAs = pictureBox1.RectangleToScreen(pictureBox1.ClientRectangle);
gSaveAs.CopyFromScreen(rectSaveAs.Location, Point.Empty, pictureBox1.Size);
有没有更好的方法来保存图纸?上述方法产生图像但不必与绘制的图像相同。例如,如果我有一个弹出窗口或图片框顶部的东西,那么保存的图像也会弹出。如何保存屏幕上绘制的内容?
答案 0 :(得分:-1)
我会在Bitmap上绘制并将其呈现在PictureBox中。这样你就不需要抓住屏幕了。
Bitmap backPage = new Bitmap(pictureBox1.Width, pictureBox1.Height);
pictureBox1.Image = backPage;
using(var g = Graphics.FromImage(backPage))
{
// draw
}
pictureBox1.Refresh();