Cómo: Mejorar el rendimiento del desplazamiento de un control ListBox
Si ListBox contiene muchos elementos, la respuesta de la interfaz de usuario puede ser lenta cuando un usuario desplaza el control ListBox mediante la rueda del mouse o arrastrando el control de posición de una barra de desplazamiento. Puede mejorar el rendimiento de ListBox cuando el usuario se desplaza estableciendo la propiedad adjunta VirtualizingStackPanel.VirtualizationMode
en VirtualizationMode.Recycling.
Ejemplo
Descripción
En el ejemplo siguiente se crea ListBox y se establece la propiedad adjunta VirtualizingStackPanel.VirtualizationMode
en VirtualizationMode.Recycling para mejorar el rendimiento durante el desplazamiento.
Código
<StackPanel>
<StackPanel.Resources>
<src:LotsOfItems x:Key="data"/>
</StackPanel.Resources>
<ListBox Height="150" ItemsSource="{StaticResource data}"
VirtualizingStackPanel.VirtualizationMode="Recycling" />
</StackPanel>
En el ejemplo siguiente se muestran los datos que usa el ejemplo anterior.
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