C# 通过GDI+双缓冲解决绘图闪烁的问题
2018-06-04 21:15
253 查看
总体思路:
把图先画在bitmap上,每次都通过drawimage将bitmap传到显示设备,双缓存的graphics不用每次都create一个,这样会闪烁,解决方法是定义一个全局的BufferedGraphics graphBuffer,然后在每次画的时候取缓冲区内的graphics。
具体步骤:
1. 定义一个全局的BufferedGraphics graphBuffer,初始化语句为(写在初始化函数内):
C# code? Bitmap b = new Bitmap(this.DisplayRectangle.Width,this.DisplayRectangle.Height);
3. 新建Graphic与Bitmap绑定
Graphics g = Graphics.FromImage((System.Drawing.Image)b);
4. 绘图,调用g绘图即可,例如:g.DrawLine(new Pen(Color.Red, 2), new Point(0,0), new Point(10,10));
5. 调用缓冲区内的Graphic,用于绘制Bitmap图(需要先清空之前的画布,最后需要Render):
Graphics diaplayGraphic= this.graphBuffer.Graphics;
diaplayGraphic.Clear(this.BackColor);
diaplayGraphic.DrawImage(b, 0, 0);
this.graphBuffer.Render();
至此,已经可以解决闪烁问题。阅读更多
相关文章推荐
- C# 绘图中的图片闪烁问题解决方法的使用结果
- 解决绘图中闪烁的问题(C#)
- 解决绘图中闪烁的问题(C#)
- [C#开发小技巧]解决WinForm控件TabControl闪烁问题
- 解决绘图时闪烁问题的一点经验
- 解决C# WinForm Graphics绘制闪烁问题
- C# 解决双缓冲闪烁问题
- (VC)解决绘图时闪烁问题的一点经验[转]
- C#控件的闪烁问题解决方法总结
- 通过设置子窗体透明度,解决C# winform 子窗体设置背景图卡的问题
- c# 窗体的背景图片在加载时,背景图片闪烁问题 已解决
- C#控件的闪烁问题解决方法
- C#控件的闪烁问题解决方法总结
- 如何使用 GDI+ 双缓冲 解决绘图闪烁问题
- 解决绘图时闪烁问题的一点经验
- C# 线程中更新ListView某单元格导致闪烁问题的解决
- 解决绘图中闪烁的问题
- asp.net(C#)通过WMI无法获取磁盘卷序列号(硬件信息)的问题解决办
- C#控件的闪烁问题解决方法总结
- C#.Net里面通过事件调用事件,通过简单了解相信可以帮你解决问题