我正在使用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来存储位图。 问题可能是我绘制的面板停靠在父工具的StripContainer.ContentPanel中,我不确定。
非常感谢有关此事的任何想法或解决方案!
答案 0 :(得分:2)
Rectangle rect = panel1.RectangleToScreen(panel1.ClientRectangle);
...
panel1.DrawToBitmap(bmp, rect);
你只是传递了错误的矩形。它在屏幕坐标中,需要在客户端坐标中。你通过使用CopyFromScreen()来解决这个问题,它确实需要屏幕坐标。但是没有做任何有用的事情,只是摆脱它。修正:
Rectangle rect = new Rectangle(Point.Empty, panel1.Size);
panel1.DrawToBitmap(bmp, rect);