1

我正在使用 DrawtoBitmap 将面板中的绘图保存到特定位置,但是当我打开文件时,图像的右下角部分应该是空白的。这个空白矩形的大小似乎因绘图而异。这是我的代码:

Bitmap bmp = new Bitmap(panel1.Width, panel1.Height);
Graphics g = Graphics.FromImage(bmp);   
Rectangle rect = panel1.RectangleToScreen(panel1.ClientRectangle);
g.CopyFromScreen(rect.Location, Point.Empty, panel1.ClientSize);
g.Dispose();

panel1.DrawToBitmap(bmp, rect);

然后我使用 SaveFileDialog 来存储位图。问题可能是我绘制的面板停靠在父 toolStripContainer.ContentPanel 中,我不确定。

非常感谢您对此事的任何想法或解决方案!

4

1 回答 1

2
Rectangle rect = panel1.RectangleToScreen(panel1.ClientRectangle);
...
panel1.DrawToBitmap(bmp, rect);

您只是传递了错误的矩形。它在屏幕坐标中,它需要在客户端坐标中。您使用 CopyFromScreen() 遇到了这个麻烦,它确实需要屏幕坐标。但没有做任何有用的事情,只是摆脱它。使固定:

Rectangle rect = new Rectangle(Point.Empty, panel1.Size);
panel1.DrawToBitmap(bmp, rect);
于 2013-04-15T15:00:04.037 回答