如何获取ItemsControl中所有项目的总高度?

时间:2019-01-16 19:50:17

标签: c# uwp itemscontrol

我尝试访问rendersize,actualheight,height,但没有提供我ItemsItem元素内所有项目的高度的方法-实际上,唯一返回值的属性是ItemsControl.ActualHeight;。但是,这将返回与嵌套在网格内的父StackPanel元素相同的大小。

在生成/渲染所有Items的情况下,是否有任何方法可以计算或拉取ItemsControl元素的全高?当前,如果我的窗口以1920x1080渲染,并且我的ItemsControl中有很多项目-ItemsControlactualHeight始终与窗口高度匹配;因此,我需要确定所有项目的全长以及它与窗口大小的比较。

非常感谢您的时间和帮助!

1 个答案:

答案 0 :(得分:3)

ItemsControls是复杂的实体,您会看到,这些控件内置了渐进式/增量式加载,它是名为 Virtualization 的系统的一部分,并且在所有UI系统中都非常普遍,向下滚动BinGooglGo图像结果,例如获得渐进式加载。

并非同时显示 ItemSource 中的所有项目,而是仅用户看到的具有“物理”形式。

例如,通常,典型的UWP ListView 仅会渲染适合当前 ViewPort (可见区域)的项目的确切数量,外加大约10-视口南和北20个项目正在准备滚动操作。

编辑: 但是因为我不喜欢将答案当作解决方案,所以尽管反模式我仍将展示以下内容:

用Scrollviewer包装您的ItemsControl,这将立即加载其所有内容。

相关问题