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