WPF - приостановка потока пользовательского интерфейса? - PullRequest
1 голос
/ 10 мая 2010

У меня есть вкладка с перетаскиваемыми вкладками. Когда мышь отпущена, она удаляет выбранную вкладку из tabControl и добавляет ее на новое место. Моя проблема в том, что TabControl отрисовывает себя после удаления вкладки, а затем снова при добавлении вкладки, поэтому появляется очень заметное мерцание, показывающее перемещение вкладки за вкладкой.

Есть ли способ приостановить поток пользовательского интерфейса, чтобы элемент управления вкладками не перерисовывался до завершения операций удаления и вставки? Или, может быть, какой-то другой альтернативный способ перестановки элементов табуляции? Операция перетаскивания существует в отдельном файле кода как вложенное свойство

Ответы [ 2 ]

0 голосов
/ 11 мая 2010

Я действительно обнаружил, что моя проблема не имеет ничего общего с перетаскиванием. Это была функция, которая запускалась при событии SelectionChanged в TabControl, которое вызывало перерисовку вкладок при добавлении и удалении.

0 голосов
/ 11 мая 2010

Можно ли удалить / повторно вставить вкладку после завершения перетаскивания?

Я предполагаю, что ваша функциональность перетаскивания использует украшения для визуализации изображения при перетаскивании. Если вы можете прослушивать какие-либо события dragstarted / dragfinished, вы сможете просто ничего не делать с видом на дерево во время перетаскивания элемента, а затем удалить / повторно вставить вкладку после завершения перетаскивания.

...