永发信息网

我用C# gdi+ 在panel上绘制动态曲线,当数据来了的时候,直接调用自己写的绘制方法,可是为何有重影??

答案:2  悬赏:0  手机版
解决时间 2021-02-11 21:27
  • 提问者网友:回忆在搜索
  • 2021-02-11 17:14
可是界面上会出现重影(拖影),怎么解决啊???我换成picturebox了,可是问题还是一样,在使用picturebox时,使用过 Bitmap bmp = new Bitmap(tempPanel.Width, tempPanel.Height);//定义窗体宽、半窗体高的缓冲位图
tempPanel.Image = bmp;
Graphics bufg = Graphics.FromImage(tempPanel.Image);这样重影还是有,bufg.clear()后,也还是有,在picturebox控件上怎么解决这个拖影问题啊???或是在Panel控件上,如何解决这个问题???(现在我不想使用Invalidate+Update,通知系统重绘。因为容易出行MDA异常)

怎么有效的清楚旧的绘制画面?
最佳答案
  • 五星知识达人网友:骨子里都是戏
  • 2021-02-11 18:12
你可以搜索一下双缓冲技术,看看能不能解决你的这个问题,我仅仅是有些了解,不是十分确认能解决你的问题
全部回答
  • 1楼网友:北方的南先生
  • 2021-02-11 18:19
出现直线重复? 如果是我,我会自己派生一个类来弄 public class mypicturebox : picturebox {     override void onmousedown...     override void onmousemove...     override void onpaint()     {         ....     } } 这样更能自己控制,双缓冲,先画到bitmap再一次性画到控件上,防闪烁 或者你的 g.clear(this.backcolor);  放的位置不太对,你到底有几条直线,需要保留原图,在原图基础上画吗?也就是原来划过直线的基础上再画新的第二条,第三条直线,否则如果只有一条直线的话,你干嘛不在画直线之前一行,g.clear(this.backcolor);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯