如何将TreeViewItem的VirtualizationMode默认值设为Recycling?
如何将TreeViewItem对应的VirtualizingPanel.VirtualizationMode默认值设为Recycling?
我需要将VirtualizingPanel.VirtualizationMode的默认值设置为Recycling,重点作用于TreeViewItem,但尝试了以下方法均未生效,通过XAML实时属性浏览器查看,该属性并未被正确应用。
尝试过的XAML代码
<TreeView VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.CacheLengthUnit="Pixel" VirtualizingPanel.VirtualizationMode="Recycling"/> <Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource {x:Type TreeViewItem}}"> <Setter Property="VirtualizingPanel.VirtualizationMode" Value="Recycling" /> </Style>
尝试过的C#代码
static MainWindow() { VirtualizingPanel.VirtualizationModeProperty.OverrideMetadata( typeof(VirtualizingPanel), new FrameworkPropertyMetadata(VirtualizationMode.Recycling)); VirtualizingPanel.VirtualizationModeProperty.OverrideMetadata( typeof(MainWindow), new FrameworkPropertyMetadata(VirtualizationMode.Recycling)); VirtualizingPanel.VirtualizationModeProperty.OverrideMetadata( typeof(TreeViewItem), new FrameworkPropertyMetadata(VirtualizationMode.Recycling)); VirtualizingPanel.VirtualizationModeProperty.OverrideMetadata( typeof(VirtualizingStackPanel), new FrameworkPropertyMetadata(VirtualizationMode.Recycling)); }
复现步骤
- 下载对应源码并在Visual Studio调试模式启动程序;
- 打开“实时可视化树”窗口,找到TreeViewItem节点下的VirtualizingStackPanel;
- 右键点击该VirtualizingStackPanel选择“属性”,查看
VirtualizationMode的属性值。
内容的提问来源于stack exchange,提问作者Hossein Ebrahimi
相关产品推荐
相关产品推荐

