2016-08-17 43 views

回答

1

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

视口的概念对UI虚拟化至关重要,因为 框架必须创建可能显示的元素。通常, 控件的视口是逻辑控件的范围。例如,一个ListView的视口是ListView元素的宽度和 的高度。一些面板允许子元素 不受限制的空间,例如ScrollViewer和网格,其中 自动调整大小的行或列。当虚拟化的ItemsControl被放置在类似的面板中时,它需要足够的空间来显示其所有 项目,这会影响虚拟化。通过在ItemsControl上设置 宽度和高度来恢复虚拟化。

enter image description here

而且自定义模板往往打破虚拟化:

如果你提供了一个自定义项目面板模板(见ItemsPanel)然后 确保您使用的是虚拟化面板如ItemsWrapGrid或 ItemsStackPanel。如果您使用VariableSizedWrapGrid,WrapGrid或StackPanel,那么您将无法获得虚拟化。

MSDN上的更多信息:UWPWin8,其中也有一些很好的意见仍然算。