2

Control.DoubleBuffered在幕后和实践中有何Control.SetStyle不同?ControlStyles.DoubleBuffer

ControlStyles.DoubleBuffer此外和 和有什么区别ControlStyles.OptimizedBuffer文档页面上定义的差异并不是很清楚。

最后,为什么文档中规定两者ControlStles.OptimizedDoubleBuffer和都ControlStyles.DoubleBuffer需要伴随ControlStyles.UserPaintControlStyles.AllPaintingInWmPaint

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

4

1 回答 1

2

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

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

于 2013-01-23T03:32:15.740 回答