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
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla