이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

VirtualizingStackPanel 클래스

Arranges and virtualizes content on a single line that is oriented either horizontally or vertically.

네임스페이스: System.Windows.Controls
어셈블리: PresentationFramework(presentationframework.dll)
XML 네임스페이스:  http://schemas.microsoft.com/winfx/2006/xaml/presentation

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

In this context, the word "virtualize" refers to a technique by which a subset of user interface (UI) elements are generated from a larger number of data items based on which items are visible on-screen. Generating a large number of user interface (UI) elements when only a few elements might be on the screen at a given time is intensive with regard to both memory and processor. Through functionality that VirtualizingPanel provides, VirtualizingStackPanel calculates the number of visible items and works with the ItemContainerGenerator from an ItemsControl (such as ListBox or ListView) to create user interface (UI) elements only for visible items.

Virtualization in a StackPanel only occurs when items are data-bound. In scenarios with items that are not data-bound, a VirtualizingStackPanel offers no performance advantage over a StackPanel.

VirtualizingStackPanel is the default items host for the ListBox element. By default, the IsVirtualizing property is set to true.

When IsVirtualizing is set to false, a VirtualizingStackPanel behaves the same as a normal StackPanel.

The following example shows how to bind to an XML data source and virtualize the data source within a ListBox element by using 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
이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

Microsoft .NET Framework 3.0은 Windows Vista, Microsoft Windows XP SP2 및 Windows Server 2003 SP1에서 지원됩니다.

.NET Framework

3.0에서 지원
이 정보가 도움이 되었습니까?
(1500자 남음)

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
© 2013 Microsoft. All rights reserved.