C#使用双缓冲解决绘图闪屏的问题

时间:2021-07-02 17:40:53
最近在工作需要使用C#绘制图形,看了一下绘制的函数觉得很简单就开始着手工作了,但是在实际应用的时候发现鼠标进行绘制的时候会闪屏,原因是图元重绘的时间不一致,百度一下有很多更详细的,于是参照网上的解决办法在窗体初始化函数中加入 SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint, true); SetStyle(ControlStyles.ResizeRedraw, true);以为解决问题,绘图的时候不再闪屏但是会卡顿,以为是物极必反的缘故,百度了很久也调试了很久都没有解决问题,折腾了一个小时绝望的盯着屏幕发现每次重绘的时候都会打印一个调试信息,马上注释掉,结果喜人,所以在绘图的时候尽量不要使用Console.WriteLine打印信息,都是坑。