C# Winform 双缓冲画图 如何解决背景Transparent的问题

shzt925232075 2015-07-21 08:49:54
大家好

小弟我为了解决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和双缓冲画图之间的矛盾呢?

谢谢了。
...全文
231 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2015-07-21
  • 打赏
  • 举报
回复
ControlPaint

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧