具体方案。 ControlA更改一个值,该值使ControlB(scrollviewer的子类)重新指定其视口,偏移量和范围,然后触发ScrollableChanged事件。 ControlB还捕获“ ScrollableChanged”事件,并以编程方式滚动到确定的偏移量。如果我可以在更改值之前调用suspendlayout,然后在执行计算得出的滚动之后恢复resumelayout,则将创建此可怕的双重重绘,这将完全避免。
我该怎么做呢?
最佳答案
从here:
由于布局是单独进行的
通过它被隐式阻止
UI线程忙时更新
做其他事情。所以你
可以添加所需的所有控件,
更改所需的所有属性,然后
直到
UI线程返回。