Como: Melhorar o desempenho de rolagem de uma caixa de listagem.
Se um ListBox contém muitos itens, a resposta de interface do usuário pode ser lenta quando o usuário rola a ListBox usando a roda do mouse ou arrastando o controle deslizante de um scrollbar. Você pode melhorar o desempenho da ListBox quando o usuário rola definindo a VirtualizingStackPanel.VirtualizationMode anexado propriedade para Recycling.
Exemplo
Description
O exemplo a seguir cria um ListBox e define VirtualizingStackPanel.VirtualizationMode para Recycling para melhorar o desempenho durante a rolagem.
Code
<StackPanel>
<StackPanel.Resources>
<src:LotsOfItems x:Key="data"/>
</StackPanel.Resources>
<ListBox Height="150" ItemsSource="{StaticResource data}"
VirtualizingStackPanel.VirtualizationMode="Recycling" />
</StackPanel>
O exemplo a seguir mostra os dados que o exemplo anterior usa.
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
public class LotsOfItems : ObservableCollection<String>
{
public LotsOfItems()
{
for (int i = 0; i < 1000; ++i)
{
Add("item " + i.ToString());
}
}
}