0

如何为列表框中的所有元素以及视图之外的元素设置一个共享列的大小。SharedSizeGroup 仅适用于可见元素,但是当我向下滚动并且其中一列中的元素变得更宽时,该列变得更宽且相反。如何使共享大小计算所有元素的最大宽度也不可见并调整一次宽度?原谅我的英语。我希望有一个人可以帮助我。

4

1 回答 1

0

这可能是由于UI 虚拟化

为了提高性能,ListBox 默认使用 UI 虚拟化。仅为当前显示在列表中的项目创建基于 UIElement 的对象。然后在将其他项目滚动到视图中时创建新的 UIElement。

由于该项目尚未创建,Grid内部也未创建,因此SharedSizeGroup看不到它。

您可以通过关闭该 ListBox 的 UI 虚拟化来解决此问题:

<ListBox VirtualizingPanel.IsVirtualizing="False"/>

注意:您还将失去 UI 虚拟化的所有性能优势,但这只有在您显示的项目数量足够多时才会变得明显。

于 2021-09-25T01:44:13.607 回答