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

本文关键字:Control 区别 之间 SetStyle DoubleBuffered | 更新日期: 2023-09-27 17:55:40

Control.DoubleBufferedControlStyles.DoubleBuffer Control.SetStyle在引擎盖下和实践中有何不同?

此外,ControlStyles.DoubleBufferControlStyles.OptimizedBuffer有什么区别?文档页面上定义的差异并不十分清楚。

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

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

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

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

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