Windows 10 HubSection中GridView和ListView的UI虚拟化

Windows 10 HubSection中GridView和ListView的UI虚拟化,windows-10,uwp,windows-10-universal,Windows 10,Uwp,Windows 10 Universal,我只是注意到,如果我将UWP应用程序中的GridView或ListView放在HubSection中,UI虚拟化就会中断。我的理解正确吗 谢谢虚拟化只对视口之外的项目发生。因此,重要的是将GridView放入限制其大小的控件(例如Grid没有自动调整大小的行/列)或设置控件的大小。如果您的hubbsection没有固定大小,我也不会感到惊讶 视口的概念对于UI虚拟化至关重要,因为 框架必须创建可能显示的元素。在里面 一般情况下,ItemsControl的视口是逻辑控件的范围 控制例如,ListV

我只是注意到,如果我将UWP应用程序中的GridView或ListView放在HubSection中,UI虚拟化就会中断。我的理解正确吗


谢谢

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

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

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

如果提供自定义项目面板模板(请参见ItemsPanel),则 确保使用虚拟化面板,如ItemsWrapGrid或 项目跟踪面板。如果使用VariableSizedWrapGrid、WrapGrid或 StackPanel,则无法获得虚拟化

更多关于MSDN的信息:还有,它还有一些仍然很重要的优点