猿问
如何在窗体上双缓冲.NET控件?
如何在窗体上双缓冲.NET控件?
如何设置受保护的
DoubleBuffered
窗体上受闪烁影响的控件的属性?
繁华开满天机
浏览 298
回答 2
2回答
幕布斯7119047
查帐这条线重复这个答案的核心,您可以在窗口上打开WS_ex_Composed样式标志,以获得窗体及其所有控件的双缓冲。自XP以来,样式标志可用。这并不能使绘画更快,但整个窗口是绘制在一个屏幕外的缓冲区,并一刀切地闪现到屏幕上。使它在用户的眼睛看起来即时没有可见的绘画文物。它并不是完全没有麻烦,一些视觉样式渲染器可以在它上故障,特别是TabControl,当它有太多的标签。YMMV。将此代码粘贴到窗体类中:protected override CreateParams CreateParams { get { var cp = base.CreateParams; cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED return cp; } }这种技术和Winform的双缓冲支持之间最大的区别是Winform的版本只在一个控件上工作。您仍然会看到每个单独的控件绘制本身。这看起来也像闪烁的效果,特别是如果未绘制的控制矩形与窗口的背景形成了严重的对比。
0
0
0
随时随地看视频
慕课网APP
相关分类
C#
typedef入门问题
1 回答
我要回答