在Winform应用程序中,我有一个用户控件;在哪些形状上绘制矩形,圆形等。 我试图通过使用DrawToBitmap()方法拍摄相同的快照。 我有一个固定大小的位图(300 x 300),用户控件的大小(600 x 800) 因此拍摄的快照仅包含部分用户控件。
如何在位图中获取整个用户控件的快照? 提前谢谢。
答案 0 :(得分:3)
您可以使用以下方法:
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));
}
}
}