对Control.DrawToBitmap的父调用似乎不尊重子控件中设置的剪辑区域

时间:2011-03-04 03:13:06

标签: c# .net winforms gdi+

我创建了一个UserControl,它只是定义一个新的GraphicsPath并将其设置为控件的Region。它的主要用途是作为其他控件的背景,所以通常唯一设置的就是BackColor。当我在控件的父级上调用DrawToBitmap时,子控件被绘制为一个矩形而不是被剪切到我期望的区域。我在这里错过了什么吗?

控件的标准使用不会出现此问题。

此外,我需要能够将此控件绘制到图像上,而它当前未显示在屏幕上。我已经看到,如果没有这个额外的要求,可以可以使用的一些变通方法。

1 个答案:

答案 0 :(得分:0)

DrawToBitmap不尊重地区。但Graphics.CopyFromScreen确实如此。

        Bitmap bitmap = new Bitmap(this.Width, this.Height);
        using (Graphics graphics = Graphics.FromImage(bitmap))
        {
            graphics.CopyFromScreen(this.Location, new Point(0, 0), this.Size);
        }