具体方案。 ControlA更改一个值,该值导致ControlB(scrollviewer的子类)重新配置它的视口,偏移量和范围,然后触发ScrollableChanged事件。 ControlB还捕获“ScrollableChanged”事件,并以编程方式滚动到确定的偏移量。如果我在执行计算滚动之后更改值和resumelayout之前可以调用suspendlayout,则会创建这种可怕的双重绘制。
我该怎么做?
答案 0 :(得分:4)
来自here:
由于布局是在一个单独的地方完成的 传递它被隐式阻止 UI线程忙时更新 做别的事。所以你 可以添加您想要的所有控件 更改所需的所有属性 这些改变直到生效才会生效 UI线程返回。