How to: Improve the Scrolling Performance of a ListBox

Updated: February 2009

If a ListBox contains many items, the user interface response can be slow when a user scrolls the ListBox by using the mouse wheel or dragging the thumb of a scrollbar. You can improve the performance of the ListBox when the user scrolls by setting the VirtualizingStackPanelVirtualizationMode attached property to Recycling.

Description

The following example creates a Listbox and sets VirtualizingStackPanelVirtualizationMode to Recycling to improve performance during scrolling.

Code

<StackPanel>

  <StackPanel.Resources>
    <src:LotsOfItems x:Key="data"/>
  </StackPanel.Resources>

  <ListBox Height="150" ItemsSource="{StaticResource data}" 
             VirtualizingStackPanel.VirtualizationMode="Recycling" />

</StackPanel>

The following example shows the data that the previous example uses.

public class LotsOfItems : ObservableCollection<String>
{
    public LotsOfItems()
    {
        for (int i = 0; i < 1000; ++i)
        {
            Add("item " + i.ToString());
        }
    }
}

Date

History

Reason

February 2009

Added Visual Basic example.

Customer feedback.

July 2008

Added topic to show the new UI virtualization and container recycling features.

SP1 feature change.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2015 Microsoft