HubSection中GridView和ListView的UI虚拟化

时间:2016-08-17 10:48:49

标签: windows-10 uwp windows-10-universal

我刚注意到,如果我在HubSection中的UWP应用程序中放置了GridView或ListView,则UI虚拟化会中断。我的理解是否正确?

由于

1 个答案:

答案 0 :(得分:2)

仅对视口外的项目进行虚拟化。因此,将GridView放入限制其大小的控件(例如Grid没有自动调整大小的行/列)或设置控件的大小非常重要。如果您的HubSection没有固定的尺寸,我不会感到惊讶。

  

视口的概念对于UI虚拟化至关重要,因为   框架必须创建可能显示的元素。在   一般来说,ItemsControl的视口是逻辑的范围   控制。例如,ListView的视口是宽度和   ListView元素的高度。一些面板允许子元素   无限空间,例如ScrollViewer和Grid,有   自动调整大小的行或列。放置虚拟化ItemsControl时   在这样的面板中,它需要足够的空间来显示它的所有内容   项目,这打败了虚拟化。通过设置恢复虚拟化   ItemsControl上的宽度和高度。

enter image description here

自定义模板通常会破坏虚拟化:

  

如果您提供自定义项面板模板(请参阅ItemsPanel)   确保使用诸如ItemsWrapGrid之类的虚拟化面板   ItemsStackPanel。如果您使用VariableSizedWrapGrid,WrapGrid或   StackPanel,那么你就不会得到虚拟化。

有关MSDN的更多信息:UWPWin8,它们还有一些优点仍然可以计算。