当TreeView是Window中唯一的东西时,虚拟化可以正常工作。例如:
<Grid>
<vw:FontTreeView x:Name="fontTreeViewControl" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderThickness="0" />
</Grid>
但即使只是添加行定义也会完全破坏虚拟化:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<vw:FontTreeView x:Name="fontTreeViewControl" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderThickness="0" />
</Grid>
我的TreeViewItem样式具有以下触发器:
<Style.Triggers>
<Trigger Property="VirtualizingStackPanel.IsVirtualizing" Value="true">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
当然TreeView有VirtualizingStackPanel.IsVirtualizing =“True”
Q值。如何在不破坏虚拟化的情况下在窗口中使用其他元素?谢谢你的帮助非常感谢。
答案 0 :(得分:0)
我的问题是将高度设置为自动。它必须是固定的,或使用*代替。在我的RowDefinition实例中。