2009-05-27 9 views
3

Scénario spécifique. ControlA modifie une valeur qui amène ControlB (une sous-classe de scrollviewer) à refigurer sa fenêtre d'affichage, son décalage et son étendue, puis déclenche l'événement ScrollableChanged. ControlB intercepte également l'événement "ScrollableChanged" et défile par programmation jusqu'à un décalage déterminé. Cela crée ce double redraw terrible qui serait complètement évité si je pouvais juste appeler suspendlayout avant de changer la valeur et resumelayout après que le scroll calculé est effectué.Equivalent à SuspendLayout et ResumeLayout dans WPF

Comment faire?

Répondre

4

De here:

Depuis la mise en page se fait en une passe séparée, il est implicitement bloqué de mise à jour alors que le thread d'interface utilisateur est occupé faire autre chose. Par conséquent vous pouvez ajouter toutes les commandes que vous voulez et changer toutes les propriétés que vous voulez et les modifications ne prendront effet jusqu'à ce que retourne le fil de l'interface utilisateur.