我有一个TreeView多层的 XAML。使用此解决方案,我可以获得每个不同层的 XAML 配置外观,并确认它是 UI 虚拟化。
但是,当我将特定层切换为与其父层VirtualizingStackPanel不同Orientation(无论是通过像这个解决方案这样的代码还是使用Snoop都无关紧要),然后 UI 虚拟化就会关闭,并且一旦我展开它就会TreeView实现所有TreeViewItem层。
在研究这种行为时,我注意到在VirtualizingStackPanel您深入研究其MeasureOverride功能的参考源中,您会在第 2116 行找到以下评论:
计算此面板的方向是否不同(原文如此)其父或后代
微软似乎有意为这种情况禁用了 UI 虚拟化。所以我有两个问题:
- 为什么层之间的方向一致性很重要?
- 如何让 UI 虚拟化在其中
TreeView具有不同方向的情况下工作?