在WPF中stackpanel和virtualizingstackpanel之间有什么区别?

时间:2009-03-20 13:19:33

标签: wpf stackpanel virtualizingstackpanel

WPF中的stackpanel和virtualizingstackpanel之间有什么区别?

2 个答案:

答案 0 :(得分:24)

VirtualizingStackPanel 可以在处理非常大的集合时提供性能优势。它通过仅渲染和处理用户可见的数据子集与处理整个数据列表来实现。通过仅为可见项创建UI元素,可以大大减少它必须完成的工作量。

如果

,这真的很方便
  1. 您是数据绑定非UI元素或必须在特定面板中创建UI的元素
  2. 您是绑定大量数据的数据
  3. 另一方面,StackPanel将预先为StackPanel中包含的所有元素创建控件。

    VirtualizingStackPanel MSDN页面有一个不错的讨论:http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.aspx

答案 1 :(得分:1)

这与视觉树有关。 virtualizingstackpanel可以处理列表框等内容,通过仅显示可见项来减小可视树的大小 - 这在数据绑定发生时非常有用。