Cómo: Mejorar el rendimiento del desplazamiento de un control ListBox
Actualización: Julio de 2008
Si ListBox contiene muchos elementos, la respuesta de la interfaz de usuario puede ser lenta cuando un usuario desplaza el control ListBox utilizando la rueda del mouse o arrastrando el cuadro de una barra de desplazamiento. Puede mejorar el rendimiento de ListBox cuando el usuario se desplaza estableciendo la propiedad asociada VirtualizingStackPanelVirtualizationMode() en Recycling.
Ejemplo
Descripción
En el ejemplo siguiente se crea un control Listbox y se establece la propiedad VirtualizingStackPanelVirtualizationMode() en Recycling para mejorar el rendimiento durante los desplazamientos.
Code
<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 se utilizan en el ejemplo anterior.
public class LotsOfItems : ObservableCollection<String>
{
public LotsOfItems()
{
for (int i = 0; i < 1000; ++i)
{
Add("item " + i.ToString());
}
}
}
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Julio de 2008 |
Tema agregado para mostrar las nuevas características de virtualización de la interfaz de usuario y de reciclaje de contenedores. |
Cambio de características de SP1. |