This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

VirtualizingStackPanel الفئة

Visual Studio 2010

ترتيب و virtualizes المحتوى تشغيل مفرد الأسطر التي هو موجه أفقياً أو عمودياً.

مساحة الاسم:  System.Windows.Controls
التجميع:  PresentationFramework (في PresentationFramework.dll)
XMLNS لـ XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

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

قم بإنشاء حاويات عنصر النظام التخطيط القياسي وتحسب التخطيط لكل عنصر المقترنة بقائمة عنصر تحكم. الكلمة "virtualize" يشير إلى تقنية بواسطتها مجموعة فرعية من واجهة المستخدم (UI)العناصر التي تم إنشاؤها من بقعة صغيرة رقم من عناصر بيانات استناداً إلى العناصر التي تكون مرئي تشغيل شاشة. إنشاء العديد من العناصر واجهة المستخدمعندما قد تكون بعض العناصر فقط تشغيل شاشة سلبا تشغيل أداء تطبيق الخاص بك.  VirtualizingStackPanelبحساب عدد العناصر المرئية ويعمل مع ItemContainerGeneratorمن ItemsControl(such كـListBoxأوListView) إلى إنشاء واجهة المستخدمعناصر فقط للعناصر المرئية.

الوضع الظاهري في StackPanelتحدث فقط عند العناصر عنصر تحكم الموجودة في لوحة إنشاء حاويات عنصر خاص به. يمكنك التأكد من حدوث ذلك بواسطة استخدام ربط بيانات. في وحدات سيناريو الموقع يتم تاريخ الإنشاء حاويات عنصر وإضافة إلى العناصر عنصر تحكم، VirtualizingStackPanelتقدم عدم وجود مزايا الأداء عبر StackPanel.

VirtualizingStackPanel هو مضيف عناصر الافتراضيةListBoxالعنصر. قم بتعيين خاصية IsVirtualizing() التابعة للخاصية true.

عند IsVirtualizing()هو التعيين إلى false، VirtualizingStackPanelيتصرف ordinary StackPanel.

VirtualizingStackPanel.VirtualizationMode تم إرفاق الخصائص

VirtualizingStackPanel.VirtualizationMode تحدد خاصية المرفقة كيف لوحة في ItemsControlvirtualizes عناصر التابعة له. بشكل افتراضي، VirtualizingStackPanelإنشاء حاوية عنصر لكل عنصر vهوible و dهوcards عند ذلك هو لم تعد هناك حاجة (مثل متى العنصر هو تمريره خارج عرض). عند ItemsControlيحتوي على عدد كبير من عناصر، عملية إنشاء و التخلص من حاويات عنصر يمكن أن يؤثر شكل سلبي على أداء. عند VirtualizingStackPanel.VirtualizationModeهو تعيين إلى Recycling، VirtualizingStackPanelعنصر reuses حاويات بدلاً من إنشاء صيغة جديدة كل الوقت.

عند VirtualizingStackPanelلا يمكن إعادة تصنيع حاويات العنصر، فإنه يستخدم الوضع القياسي للوضع الظاهري، الذي هو لإنشاء حاويات العنصر dهوcard لكل عنصر. القوائم التالية تصف الحالات عند VirtualizingStackPanelلا يمكن إعادة تصنيع حاويات العنصر:

  • ItemsControl يحتوي على العنصر حاويات من أنواع مختلفة. على سبيل المثال، على Menuقد يكون للعناصر التي تستخدم كل من MenuItemو Separatorالكائنات كـ حاويات العنصر.

  • إنشاء حاويات عنصر وضوح إلى ItemsControl. للحصول على مزيد من المعلومات حول وضوح مقابل ضمنياً إنشاء العنصر حاويات، راجع ItemsControlفئة.

عند VirtualizingStackPanelهو تكرير حاويات العنصر، قد تحتاج إلى حفظ معلومات الحالة المقترنة حاوية بدلاً من عنصر بيانات نفسها. على سبيل المثال، إذا كان العنصر هو Expanderعنصر التحكم، IsExpandedالولاية هو منضماً إلى حاوية العنصر، وليس ببيانات العنصر نفسه. عند Expanderهو إعادة استخدامها لعنصر جديد، والقيمة الحالي ل IsExpandedهو المستخدم للعنصر الجديد. بالإضافة إلى العناصر القديمة لا يحتفظ بها IsExpandedالقيمة.

يوضح المثال التالي كيفية إلى يربط إلى XML مصدر البيانات والعناصر المعروضة في على ListBoxاستخدام عنصر virtualize 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>


يقوم المثال التالي بإنشاء ListBoxويقوم بتعيين VirtualizingStackPanel.VirtualizationModeمرفقة إلى الخاصية Recycling.


<StackPanel>

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

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

</StackPanel>


يظهر المثال التالي بيانات المستخدمة في المثال السابق.


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


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
                  System.Windows.Controls.Primitives.DataGridRowsPresenter

يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في Visual Basic) من هذا النوع. لن يتم ضمان تأمين العملية الجزئية لأي عضو مثيل.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008, نظام التشغيل Windows Server 2003

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0

NET Framework. Client Profile

مدعوم في: 4
إظهار: