Freigeben über


Gewusst wie: Verbessern der Bildlaufleistung eines Listenfelds

Falls ein ListBox viele Elemente enthält, kann die Reaktion der Benutzeroberfläche langsam sein, wenn der Benutzer den Bildlauf von ListBox durch Bewegen des Mausrads oder Ziehen des Bildlauffelds ausführt. Die Leistung von ListBox wird verbessert, wenn der Benutzer einen Bildlauf durch Festlegen der angefügten VirtualizingStackPanel.VirtualizationMode-Eigenschaft auf Recycling ausführt.

Beispiel

Beschreibung

Im folgenden Beispiel wird ein ListBox erstellt und VirtualizingStackPanel.VirtualizationMode wird auf Recycling festgelegt, um die Leistung während des Bildlaufs zu verbessern.

Code

<StackPanel>

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

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

</StackPanel>

Im folgenden Beispiel werden die im vorherigen Beispiel verwendeten Daten veranschaulicht.

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());
        }
    }
}