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 回答