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 に答える