WPF - Поставяне на нишката на потребителския интерфейс на пауза?

Имам контрола на раздели с плъзгащи се раздели. Когато мишката бъде освободена, тя премахва избрания раздел от tabControl и го добавя към новото му местоположение. Проблемът ми е, че TabControl рисува сам след премахване на раздела и след това отново при добавяне на раздела, така че има много забележимо трептене, което показва раздела зад раздела, който се премества.

Има ли начин да поставя на пауза нишката на потребителския интерфейс, така че контролата на раздела да не се преначертава, докато операциите Remove и Insert не завършат? Или може би някакъв друг алтернативен начин за пренареждане на елементите в раздела? Операцията Drag/Drop съществува в отделен кодов файл като прикачено свойство


person Rachel    schedule 10.05.2010    source източник


Отговори (2)


Възможно ли е да премахнете/вмъкнете отново раздела, след като плъзгането приключи?

Предполагам, че вашата функционалност за плъзгане/пускане използва украси за изобразяване на изображението, докато плъзгате. Ако можете да слушате някакъв вид dragstarted/dragfinished събития, трябва да можете просто да не правите нищо с вашия дървовиден изглед, докато елементът се плъзга, и след това да премахнете/вмъкнете отново раздела, след като плъзгането приключи.

person Robin    schedule 10.05.2010
comment
Това е, което правя... в събитието MouseUp елементът се премахва и се вмъква отново на новото място. Проблемът ми е, че контролата на раздела се рисува след премахването и отново след повторното вмъкване, което дава много забележимо трептене, показващо раздела зад раздела, който се плъзга. - person Rachel; 11.05.2010

Всъщност открих, че проблемът ми изобщо няма нищо общо с Drag/Drop. Това беше функция, която се изпълняваше при събитието SelectionChanged на TabControl, което караше разделите да се преначертават при добавяне и премахване.

person Rachel    schedule 11.05.2010