如何为列表框中的所有元素以及视图外的元素创建一个共享列大小?SharedSizeGroup仅适用于可见元素,但当我向下滚动,其中一列中的元素变得更宽,然后该列变得更宽,相反。我如何使共享大小计算所有元素的最大宽度也不可见,并调整宽度一次?请原谅我的英语。我希望有人能帮助我。
这可能是由于UI虚拟化:
为了提高性能,ListBox默认使用UI虚拟化。基于元素的对象仅为当前显示在列表中的项创建。新的ui元素,然后创建额外的项目滚动到视图。
由于项目还没有创建,里面的Grid
也没有创建,所以SharedSizeGroup
看不到它。
你可以通过关闭ListBox的UI虚拟化来解决这个问题:
<ListBox VirtualizingPanel.IsVirtualizing="False"/>
注意:你也会失去UI虚拟化的所有性能优势,但只有当你有足够多的项目要显示时,这一点才会变得明显。