我在控制区域重复绘制一些图形,每次我想以透明背景开始新鲜。所以我用:
Graphics graph = control.CreateGraphics();
graph.Clear(Color.Transparent);
然而,图形区域似乎变成黑色而不是透明。有什么想法吗?
答案 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);