码迷,mamicode.com
首页 > Windows程序 > 详细

关于C#双缓冲处理(BufferedGraphicsContext对象)

时间:2018-07-23 17:17:39      阅读:1031      评论:0      收藏:0      [点我收藏+]

标签:出现   div   cat   graphics   渲染   color   new   解释   phi   

https://blog.csdn.net/keep_silence_/article/details/7849880

https://blog.csdn.net/acs713/article/details/16359551

看了以上两个网址总结一下吧,因为现在研究的是C#所以重点只放在C#的BufferedGraphicsContext对象身上。

按照第二个网址贴出的代码会覆盖原本的绘图层出现 全部黑色背景。

总结两段代码

 private void Show(Control control)
        {
            // 创建缓冲图形上下文
            BufferedGraphicsContext bct = new BufferedGraphicsContext();
            // 创建指定大小缓冲区 
            BufferedGraphics bg = bct.Allocate(control.CreateGraphics(), new Rectangle(new Point
                (0,0),control.Size));
            //创建GDI+画图区域
            Graphics g = bg.Graphics;
            //清除背景颜色(变为默认背景颜色)
            g.Clear(this.BackColor);
            //跟平常Graphics绘图一样
            Pen p = new Pen(Color.Red, 1);
            g.DrawRectangle(p,5,5,50,50);  
            // 将双缓冲区中的图形渲染到指定画布上
            bg.Render(control.CreateGraphics());
            //释放
            bg.Dispose();
            g.Dispose();
        }

重复可用,简单。

关于双缓冲原理解释,上面第二个链接讲得还是很通俗易懂的。 

关于C#双缓冲处理(BufferedGraphicsContext对象)

标签:出现   div   cat   graphics   渲染   color   new   解释   phi   

原文地址:https://www.cnblogs.com/xiaowugoto/p/9355501.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!