Freigeben über


Gewusst wie: Verbessern der Bildlaufleistung eines Listenfelds

Aktualisiert: Juli 2008

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 VirtualizingStackPanelVirtualizationMode()-Eigenschaft auf Recycling ausführt.

Beispiel

Beschreibung

Im folgenden Beispiel wird ein Listbox erstellt und VirtualizingStackPanelVirtualizationMode() 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 : ObservableCollection<String>
{
    public LotsOfItems()
    {
        for (int i = 0; i < 1000; ++i)
        {
            Add("item " + i.ToString());
        }
    }
}

Änderungsprotokoll

Date

Versionsgeschichte

Grund

Juli 2008

Hinzugefügtes Thema, um die neue Virtualisierung der Benutzeroberfläche und Containerwiederverwendungsfeatures anzuzeigen.

SP1-Featureänderung.