Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês
Esta documentação foi arquivada e não está sendo atualizada.

Classe VirtualizingStackPanel

Organiza e virtualiza conteúdo em uma única linha que é orientada horizontal ou verticalmente.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (em PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/xaml/presentation

public class VirtualizingStackPanel : VirtualizingPanel, 
	IScrollInfo
<VirtualizingStackPanel>
  Children
</VirtualizingStackPanel>

O sistema de layout padrão cria recipientes de item e calcula o layout para cada item associado a um controle de lista.A palavra "virtualização" refere-se a uma técnica por meio do qual um subconjunto deinterface do usuário (UI) elementos são gerados de um número maior de itens de dados com base em quais itens estão visíveis na tela. Gerando muitos UI elementos quando talvez apenas alguns elementos na tela podem afetar de forma adversa o desempenho do seu aplicativo. O VirtualizingStackPanel Calcula o número de itens visíveis e trabalha com o ItemContainerGenerator de um ItemsControl (esses sistema autônomo ListBox ou ListView) para criar UI elementos somente para itens visíveis.

Virtualização em um StackPanel ocorre somente quando o controle de itens contido no painel cria seus próprio recipientes de item. Você pode garantir que isso acontece por meio de vinculação de dados.Em situações em que recipientes de item são criados e adicionados ao controle de itens, um VirtualizingStackPanel não oferece nenhuma vantagem de desempenho em um StackPanel.

VirtualizingStackPanel é o host de itens padrão para o ListBox elemento. Por padrão, a IsVirtualizing propriedade estiver definida como true.

Quando IsVirtualizing é definido como false, um VirtualizingStackPanel se comporta da mesma sistema autônomo um comum StackPanel.

O exemplo a seguir mostra como BIND a uma fonte de dados XML e virtualizar os itens exibidos em um ListBox usando o elemento Extensible Application Markup Language (XAML). Notice that the IsVirtualizing attached property is explicitly set to true.

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      WindowTitle="VirtualizingStackPanel Sample" 
      Height="150"
      VerticalAlignment="Top">
    <Page.Resources>
        <XmlDataProvider x:Key="Leagues" Source="Leagues.xml" XPath="Leagues/League"/>

    <DataTemplate x:Key="NameDataStyle">
      <TextBlock Text="{Binding XPath=@name}" FontFamily="Arial" FontSize="12" Foreground="Black"/>
    </DataTemplate>

    </Page.Resources>
  <Border HorizontalAlignment="Left" 
          VerticalAlignment="Top" 
          BorderBrush="Black" 
          BorderThickness="2">
       <ScrollViewer>
      <StackPanel DataContext="{Binding Source={StaticResource Leagues}}">
          <TextBlock Text="{Binding XPath=@name}" FontFamily="Arial" FontSize="18" Foreground="Black"/>
              <ListBox VirtualizingStackPanel.IsVirtualizing="True" 
                       ItemsSource="{Binding XPath=Team}" 
                       ItemTemplate="{DynamicResource NameDataStyle}"/>      
      </StackPanel>
      </ScrollViewer>
  </Border>    
</Page>


System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.DependencyObject
      System.Windows.Media.Visual
        System.Windows.UIElement
          System.Windows.FrameworkElement
            System.Windows.Controls.Panel
              System.Windows.Controls.VirtualizingPanel
                System.Windows.Controls.VirtualizingStackPanel

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Windows Vista, Windows XP SP2, Windows Server 2003

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0


Date

History

Motivo

Julho de 2008

Novos membros adicionados: GetVirtualizationMode método, SetVirtualizationMode método, VirtualizationMode() propriedade, VirtualizationModeProperty campo, OnGotKeyboardFocus método, OnLostKeyboardFocus método, OnViewportOffsetChanged método, OnViewportSizeChanged método.

Alteração de recurso do SP1.

Mostrar: