C# Winform 双缓冲画图 如何解决背景Transparent的问题
大家好
小弟我为了解决GDI画线的重影问题,用了双缓冲画图,实现代码如下:
Bitmap bmp = new Bitmap(Control.Weight,Control.Height);
Graphics bufferGraphics = Graphics.FromImage(bmp);
bufferGraphics.Clear(Control.BackColor);
bufferGraphics.DrawLine(Pen_3, 100,200,100,500);
Control.CreateGraphics().DrawImage(bmp, 0,0);
bmp.Dispose();
bufferGraphics.Dispose();
但是结果,我发现:
如果Control.BackColor是纯色,非透明Transparent,就可以达到我的目的,能够解决重影问题;
但是,我的Control控件,是一个画图控件,是要显示波形数据的,它的背景必须是Transparent,否则数据将无法显示; 那么这个时候,利用上面的双缓冲画线,依然呈现重影现象;
把Control.BackColor,改回纯色,就又好了;
故:断定是Transparent的问题。
请问各位大侠,如何解决控件背景Transparent和双缓冲画图之间的矛盾呢?
谢谢了。