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

How do I get the total height of all items inside an ItemsControl?

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

有什么方法可以计算或拉出包含所有项目的 ItemsControl 元素的完整高度 generated/rendered?目前,如果我的 window 以 1920x1080 呈现,并且我的 ItemsControl 中有大量项目 - ItemsControl actualHeight 始终与 windows 高度匹配;我需要能够确定我所有项目的全长以及它与 window 尺寸的比较。

非常感谢您的宝贵时间和协助!

ItemsControls 是复杂的实体,你看,这些控件内置了 progressive/incremental 加载,它是称为 Virtualization 的系统的一部分,而且它非常在所有 UI 系统中广泛存在,例如,当您向下滚动 BinGooglGo 图像结果时,您会获得渐进式加载。

并非 ItemSource 中的所有项目都同时呈现,而是只有用户看到的内容具有 'physical' 形式。

例如,典型的 UWP ListView 只会呈现适合当前 ViewPort 的确切数量的项目(可见区域)在视口的南边和北边加上大约 10-20 个项目,以准备滚动操作。

编辑: 但是因为我不想让我的答案不是解决方案,所以我将展示以下反模式:

用 Scrollviewer 包裹你的 ItemsControl,它会立即加载它的所有内容。