2009-05-27 76 views
3

特定场景。 ControlA更改一个值,该值导致ControlB(scrollviewer的子类)重新配置其视口,偏移量和范围,然后触发ScrollableChanged事件。 ControlB还捕获“ScrollableChanged”事件并以编程方式滚动到确定的偏移量。这会造成这种可怕的双重重绘,如果我可以在执行计算后的滚动之后更改值和resumelayout之前调用suspendlayout,将会完全避免这种重绘。等效于WPF中的SuspendLayout和ResumeLayout

我该怎么做?

回答

4

here

由于布局在一个单独的 传被隐式地从 更新受阻,而UI线程繁忙 做别的事情做。因此,您可以添加所需的所有控件,并且 更改所需的所有属性,并且 更改将不会生效,直到UI线程返回 。