Tipp der Woche 25.08.2022, 12:36 Uhr

WPF/C#/VB: Schneller Scrollen

Das Scrollen in gut gefüllten WPF-Listen kann ziemlich nervig sein. Doch ihr Tempo lässt sich ganz einfach beschleunigen.
(Quelle: Microsoft.com)
Das Schlüsselwort zu mehr Tempo beim Scrollen in Listboxen ist VirtualizationMode.Recycling. Standardmäßig erstellt ein VirtualizingStackPanel einen Element-Container für jedes sichtbare Element und verwirft ihn, wenn er nicht mehr benötigt wird (zum Beispiel wenn das Element aus der Ansicht gescrollt wird). Enthält ein ItemsControl viele Elemente, kann der Prozess des Erstellens und Verwerfens von Elementcontainern die Leistung spürbar beeinflussen. Die Lösung: Wird VirtualizationMode auf Recycling gestellt, verwendet das VirtualizingStackPanel die Elementcontainer wieder, anstatt jedes Mal einen neuen zu erstellen.
Eingesetzt wird das Recycling so:
...
  <StackPanel>
    <ListBox x:Name="lb_LotsOfItems" Height="150"
       VirtualizingStackPanel.VirtualizationMode="Recycling" />
  </StackPanel>
...

' VB.NET
Class MainWindow
  Private Sub MainWindow_Loaded(...) Handles Me.Loaded
    Dim blLoi(9999) As String
    For i = 0 To 9999
      blLoi(i) = "Item-Nr. " & i.ToString()
    Next
    lb_LotsOfItems.ItemsSource = blLOI
...
In der Microsoft-Dokumentation finden Sie die Infos zum VirtualizingStackPanel auf dieser Seite. Dort ist auch das C#-Beispiel zu finden.


Das könnte Sie auch interessieren