WPF - 暂停UI线程?

时间:2010-05-10 19:56:12

标签: wpf user-interface multithreading tabcontrol flicker

我有一个带有可拖动标签的标签控件。释放鼠标后,它会从tabControl中删除选定的选项卡,并将其添加到新位置。我的问题是TabControl在删除选项卡后自行绘制,然后在添加选项卡时再次绘制,因此有一个非常明显的闪烁,显示正在移动的选项卡后面的选项卡。

有没有办法可以暂停UI线程,以便在删除和插入操作完成之前不会重绘选项卡控件?或者也许还有其他一些重新排列标签项目的替代方法?拖放操作作为附加属性存在于单独的代码文件中

2 个答案:

答案 0 :(得分:0)

拖动完成后,您是否可以删除/重新插入标签?

我假设您的拖放功能正在使用装饰器在拖动时渲染图像。如果你可以听一些dragstarted / dragfinished事件,你应该能够在项目拖动时对你的树视图做任何事情,然后在拖动完成后删除/重新插入标签。

答案 1 :(得分:0)

我实际上发现我的问题根本与拖放无关。这是一个在TabControl的SelectionChanged事件上运行的函数,该事件导致选项卡在添加和删除时重绘。