Jak poprawić wydajność przesuwania ListBox
Jeśli element ListBox zawiera wiele elementów, odpowiedź interfejsu użytkownika może być niska, gdy użytkownik przewija ListBox kontrolkę za pomocą kółka myszy lub przeciąga kciuk paska przewijania. Wydajność funkcji można poprawić ListBox , gdy użytkownik przewija się, ustawiając dołączoną VirtualizingStackPanel.VirtualizationMode
właściwość na VirtualizationMode.Recyclingwartość .
Przykład
opis
Poniższy przykład tworzy właściwość i ustawia dołączoną ListBoxVirtualizingStackPanel.VirtualizationMode
właściwość w celu VirtualizationMode.Recycling zwiększenia wydajności podczas przewijania.
Kod
<StackPanel>
<StackPanel.Resources>
<src:LotsOfItems x:Key="data"/>
</StackPanel.Resources>
<ListBox Height="150" ItemsSource="{StaticResource data}"
VirtualizingStackPanel.VirtualizationMode="Recycling" />
</StackPanel>
W poniższym przykładzie przedstawiono dane używane w poprzednim przykładzie.
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