所以,我简化的XAML看起来像:
<Popup>
<Border>
<Grid Name="TROUBLEMAKER">
<ListBox ... />
</Grid>
</Border>
</Popup>
在运行时:
边框ActualHeight
例如是500。
网格(Name="TROUBLEMAKER"
)ActualHeight
可能 10 000 ,因此虚拟化(ListBox
中的TROUBLEMAKER
)不起作用:它假设在那里有足够的空间来渲染一切,没有任何复杂的回收/其他默认的WPF技术。
尽管我可以指定MaxHeight=...
,最有趣的事情是,它不会服从并且仍然需要尽可能多的空间来渲染所有元素(具体数量从20个项目到20 000个不等)。
如何解决这个问题?