2

Winform アプリケーションでは、ユーザー コントロールがあります。長方形、円などの形状が描かれています。DrawToBitmap() メソッドを使用して同じスナップショットを取得しようとしています。固定サイズ (300 x 300) のビットマップがあり、ユーザー コントロールのサイズ (600 x 800) であるため、取得したスナップショットにはユーザー コントロールの一部のみが含まれます。

ビットマップ内のユーザー コントロール全体のスナップショットを取得する方法は? 前もって感謝します。

4

1 に答える 1

4

次のアプローチを使用できます。

static void DrawControlToImage(Control ctrl, Image img) {
    Rectangle sourceRect = ctrl.ClientRectangle;
    Size targetSize = new Size(img.Width, img.Height);
    using(Bitmap tmp = new Bitmap(sourceRect.Width, sourceRect.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb)) {
        ctrl.DrawToBitmap(tmp, sourceRect);
        using(Graphics g = Graphics.FromImage(img)) {
            g.DrawImage(tmp, new Rectangle(Point.Empty, targetSize));
        }
    }
}
于 2012-12-27T10:41:27.913 に答える