2010-10-18 2 views
1

J'ai un ListBox qui affiche quelques mots. Les mots sont entrés dans TextBox, et lorsqu'ils sont soumis au clic d'un bouton, ils sont ajoutés à ListBox. Le problème est, si j'ajoute beaucoup de mots, le scroll est toujours au dessus de ListBox, ainsi je ne vois pas le dernier mais les premiers mots ajoutés. Y at-il un moyen de déplacer dynamiquement défiler jusqu'à la fin de ListBox chaque fois que le mot est ajouté, de sorte que le dernier mot ajouté est visible?WPF ListBox - Faites défiler toujours au-dessus

Répondre

1

ici vous allez, cela devrait faire bien ...

public static void ScrollToBottom(this ListBox listbox) 
{ 
    if (listbox == null) throw new ArgumentNullException("listbox", "Argument listbox cannot be null"); 
    if (!listbox.IsInitialized) throw new InvalidOperationException("ListBox is in an invalid state: IsInitialized == false"); 

    if (listbox.Items.Count == 0) 
     return; 

    listbox.ScrollIntoView(listbox.Items[listbox.Items.Count - 1]); 
} 

Maintenant, compte tenu de tout ListBox je peux faire ceci: ListBox lb = ...;

lb.ScrollToBottom(); 
+0

Fonctionne parfaitement! Merci! – sokolovic

+0

mon plaisir, heureux d'aider! –