Tag: ui virtualization

内部具有不同方向的WPF虚拟化TreeView不虚拟化?

我在XAML中有一个包含多个图层的TreeView 。 使用此解决方案,我可以为每个不同的层获取XAML配置的外观,并确认它是UI虚拟化。 但是,当我将特定图层的VirtualizingStackPanel切换为具有不同的Orientation (无论是通过此解决方案的代码,还是使用Snoop无关紧要)时,UI虚拟化将关闭, TreeViewItem将尽快实现所有TreeViewItem随着我扩展该层。 在研究这种行为时,我注意到在您进入MeasureOverride函数时,在VirtualizingStackPanel的参考源中,您可以在第2116行找到此注释 : 如果此面板的方向不同(sic)其父级或后代,则进行计算 在这种情况下,微软似乎故意禁用了UI虚拟化。 所以我有两个问题: 为什么层之间的方向一致性很重要? 如何让UI虚拟化与具有不同方向的TreeView一起使用?