使用双缓冲控件的优缺点

9

默认情况下,Windows控件不具备双缓冲功能。当我使用它时,可以减少闪烁。为什么Windows控件默认情况下不使用它呢。

同时,任何人都能够说明在控件上使用双缓冲的优缺点。

谢谢。


1
双缓冲使用更多资源,而且并不总是需要的。 - Rick Sladkey
它会使绘制变慢。在你之后绘制的任何控件都将保持未绘制状态更长时间。直到它被绘制出来,显示为白色或黑色矩形。这也被认为是闪烁。 - Hans Passant
2个回答

3
双缓冲技术用于创建具有许多细节的绘图,即使使用快速计算机进行绘制也很耗时。在这种技术中,不是直接在屏幕上绘制,而是先绘制到图像中,然后再将图像绘制到窗口中。
WinForms旨在首先创建带有UI元素(ComboBox、TextBox等)的表单,因此默认情况下不使用双缓冲。
双缓冲旨在用于图形开发。
因此...双缓冲使用更多的内存但工作更快,在没有多个绘图的情况下不需要使用它。
希望这可以帮助!

0
双缓冲是一种技术,用于使绘图密集型应用程序更快且更平滑地显示,从而减少闪烁。基本思路是将用于绘制应用程序的绘图操作应用于屏幕外画布。完成所有绘图操作后,将此屏幕外画布“推向前面”,即绘制为单个图像到控件上。这为用户提供了更快速的应用程序外观。

如果您的系统内存较少,则 DoubleBuffer 非常占用内存,可能会遇到内存不足问题。
关于双缓冲的最后一个考虑是,这种方法既不是完全优化的,也不是没有缺点的。虽然双缓冲是减少 Windows Forms 绘画闪烁的好方法,但它需要大量内存。实际上,使用了两倍的有效内存:应用程序的屏幕图像以及离屏图像。此外,为每个绘画事件动态创建 Bitmap 对象非常昂贵,使用 Graphics.DrawImage 将离屏图像推送到窗体表面也很昂贵。DoubleBuffer 控件样式执行所有这些优化,通常是执行双缓冲的最有效方式。
您可以在这里阅读更多相关信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接