C#Graphics.Clear(Color.Transparent)无法正常工作?

时间:2014-10-06 20:06:14

标签: c# graphics transparency

我在控制区域重复绘制一些图形,每次我想以透明背景开始新鲜。所以我用:

Graphics graph = control.CreateGraphics();
graph.Clear(Color.Transparent);

然而,图形区域似乎变成黑色而不是透明。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

我找到了另一种方法来实现我的需要。我使用控件的尺寸创建一个新的透明位图,在其上绘制我的东西,然后将其用作控件的背景图像:

    Bitmap bitmap = new Bitmap(control.Width, control.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
    bitmap.MakeTransparent();
    Graphics graph = Graphics.FromImage(bitmap);

    //  draw stuff here ...

    control.BackgroundImage = bitmap;
    graph.Dispose();

这很有效。

答案 1 :(得分:0)

因为picturebox没有透明层。你可以使用传输位图。 试试这个。

        tmp_bmp = new Bitmap(picturebox1.Width, picturebox1.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
         Graphics Canvas = Graphics.FromImage(tmp_bmp);
         picturebox1.Image = tmp_Type;

        Type_Canvas.Clear(Color.Transparent);