Sdílet prostřednictvím


Postupy: Zvýšení výkonu posunování prvku ListBox

ListBox Pokud obsahuje mnoho položek, může být odezva uživatelského rozhraní pomalá, když se uživatel posune ListBox pomocí kolečka myši nebo přetáhne palec posuvníku. Výkon při posouvání uživatelem můžete zlepšit ListBox nastavením VirtualizingStackPanel.VirtualizationMode připojené vlastnosti na VirtualizationMode.Recyclinghodnotu .

Příklad

Popis

Následující příklad vytvoří ListBox a nastaví připojenou VirtualizingStackPanel.VirtualizationMode vlastnost pro VirtualizationMode.Recycling zvýšení výkonu během posouvání.

Kód

<StackPanel>

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

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

</StackPanel>

Následující příklad ukazuje data, která používá předchozí příklad.

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