Procedura: migliorare le prestazioni di scorrimento di un controllo ListBox

Se un controllo ListBox contiene molti elementi, la risposta dell'interfaccia utente può essere lenta quando un utente scorre ListBox tramite la rotellina del mouse o trascinando il cursore di una barra di scorrimento. È possibile migliorare le prestazioni di ListBox quando l'utente scorre la visualizzazione impostando la proprietà associata VirtualizingStackPanel.VirtualizationMode su Recycling.

Esempio

Descrizione

Nell'esempio seguente viene creato un controllo ListBox e la proprietà VirtualizingStackPanel.VirtualizationMode viene impostata su Recycling per migliorare le prestazioni durante lo scorrimento.

Codice

<StackPanel>

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

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

</StackPanel>

Nell'esempio seguente vengono illustrati i dati utilizzati nell'esempio precedente.

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
public class LotsOfItems : ObservableCollection<String>
{
    public LotsOfItems()
    {
        for (int i = 0; i < 1000; ++i)
        {
            Add("item " + i.ToString());
        }
    }
}