Compartir a través de


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.