C# winform中双缓冲画图

本文详细介绍了在C# WinForm应用程序中如何使用双缓冲技术进行平滑画图,避免闪烁,提高用户体验。内容包括双缓冲的实现原理及在OnPaint事件中的应用方法。
摘要由CSDN通过智能技术生成

画图都是从OnPaint中触发的:

        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            DrawItems(e);
        }
        private void DrawItems(PaintEventArgs e)
        {
            BufferedGraphicsContext currentContext = BufferedGraphicsManager.Current;
            BufferedGraphics myBuffer = currentContext.Allocate(e.Graphics, e.ClipRectangle);
            Graphics g = myBuffer.Graphics;
            g.Clear(this.BackColor);


            //画时间刻度
            DrawScales(g);

            //画时间字符串
            DrawTimeString(g);

            //画任务块
            DrawTaskItems(g);
            
            //画边框
            DrawBorder(g);

            //呈现图像至关联的Graphics
            myBuffer.Render(e.Graphics);  

            myBuffer.Dispose();
            g.Dispose();  
        }


       
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值