Comment : améliorer les performances de défilement d'un contrôle ListBox

Si un ListBox élément contient de nombreux éléments, la réponse de l’interface utilisateur peut être lente lorsqu’un utilisateur défile à ListBox l’aide de la roulette de la souris ou fait glisser le pouce d’une barre de défilement. Vous pouvez améliorer les performances du défilement de ListBox l’utilisateur en définissant la VirtualizingStackPanel.VirtualizationMode propriété jointe sur VirtualizationMode.Recycling.

Exemple

Description

L’exemple suivant crée une ListBox propriété jointe et définit la VirtualizingStackPanel.VirtualizationMode propriété jointe pour VirtualizationMode.Recycling améliorer les performances pendant le défilement.

Code

<StackPanel>

  <StackPanel.Resources>
    <src:LotsOfItems x:Key="data"/>
  </StackPanel.Resources>

  <ListBox Height="150" ItemsSource="{StaticResource data}" 
             VirtualizingStackPanel.VirtualizationMode="Recycling" />

</StackPanel>

L’exemple suivant montre les données que l’exemple précédent utilise.

public class LotsOfItems : ObservableCollection<String>
{
    public LotsOfItems()
    {
        for (int i = 0; i < 1000; ++i)
        {
            Add("item " + i.ToString());
        }
    }
}
Public Class LotsOfItems
    Inherits ObservableCollection(Of String)
    Public Sub New()
        For i As Integer = 0 To 999
            Add("item " & i.ToString())
        Next
    End Sub
End Class