缺少面板右下角的DrawToBitmap

本文关键字:DrawToBitmap 右下角 | 更新日期: 2023-09-27 18:09:09

我使用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,我不确定

任何关于这个问题的想法或解决方案都非常感谢!

缺少面板右下角的DrawToBitmap

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

你只是通过了错误的矩形。它在屏幕坐标中,它需要在客户端坐标中。您通过使用CopyFromScreen()陷入了这个麻烦,它确实需要屏幕坐标。但没有任何有用的东西,只是摆脱它。解决办法:

Rectangle rect = new Rectangle(Point.Empty, panel1.Size);
panel1.DrawToBitmap(bmp, rect);