Control.DoubleBuffered和Control.SetStyle之间的区别

时间:2013-01-23 02:49:49

标签: c# winforms

Control.DoubleBufferedControl.SetStyleControlStyles.DoubleBuffer如何在实践中有所不同?

此外ControlStyles.DoubleBufferControlStyles.OptimizedBuffer之间有什么区别? documentation page定义的差异并不十分明确。

最后,为什么文档中指出ControlStles.OptimizedDoubleBufferControlStyles.DoubleBuffer都需要ControlStyles.UserPaintControlStyles.AllPaintingInWmPaint

这些问题与Windows窗体应用程序(GDI +)有关。我不知道WPF中是否存在这样的方法,但如果存在的话。

1 个答案:

答案 0 :(得分:2)

DoubleBuffered属性是在.NET版本2中添加的便利属性。由于过时的DoubleBuffer样式标志和新的OptimizedDoubleBuffer样式,样式标志变得太难以理解。将属性设置为true会设置所有正确的样式标记,以便您获得最佳效果。包括AllPaintingInWmPaint,即使它们通常在不同的时间运行,也需要打开以使OnPaintBackground与OnPaint同时完成的神秘的那个。重要。

始终支持该属性,使用样式标志只会导致错误并损害可读性。