C# DrawToBitmap缺少面板的右下角

C# DrawToBitmap缺少面板的右下角,c#,winforms,drawing,C#,Winforms,Drawing,我正在使用DrawtoBitmap将图形从面板保存到特定位置,但是当我打开文件时,图像右下角的部分(其中部分图形应为空白)是空白的。 此空白矩形的大小因图形而异。 这是我的密码: Bitmap bmp = new Bitmap(panel1.Width, panel1.Height); Graphics g = Graphics.FromImage(bmp); Rectangle rect = panel1.RectangleToScreen(panel1.ClientRectangle)

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

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

Rectangle rect = panel1.RectangleToScreen(panel1.ClientRectangle);
...
panel1.DrawToBitmap(bmp, rect);
您只是通过了错误的矩形。它在屏幕坐标中,需要在客户端坐标中。您使用CopyFromScreen()时遇到了这个问题,它确实需要屏幕坐标。但没什么用处,就把它扔掉吧。修正:

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

您尝试过不同的边距和填充吗?显示快照也会很有帮助。