Gewusst wie: Verbessern der Bildlaufleistung eines Listenfelds
Wenn ein ListBox viele Elemente enthält, reagiert die Benutzeroberfläche unter Umständen nur langsam, wenn ein Benutzer mit dem Mausrad oder mithilfe der Bildlaufleiste durch das ListBox scrollt. Sie können die Leistung für ein ListBox bei einem Scrollvorgang durch den Benutzer verbessern, indem Sie die angefügte Eigenschaft VirtualizingStackPanel.VirtualizationMode
auf VirtualizationMode.Recycling festlegen.
Beispiel
Beschreibung
Im folgenden Beispiel wird ein ListBox erstellt und die angefügte Eigenschaft VirtualizingStackPanel.VirtualizationMode
auf VirtualizationMode.Recycling festgelegt, um die Leistung beim Scrollen zu verbessern.
Code
<StackPanel>
<StackPanel.Resources>
<src:LotsOfItems x:Key="data"/>
</StackPanel.Resources>
<ListBox Height="150" ItemsSource="{StaticResource data}"
VirtualizingStackPanel.VirtualizationMode="Recycling" />
</StackPanel>
Das folgende Beispiel zeigt die Daten, die im vorherigen Beispiel verwendet wurden.
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
.NET Desktop feedback