C# · 12月 26, 2021

c# – WPF – TreeView隐藏展开图标(箭头)

有什么方法可以隐藏所有树视图的展开/折叠图标?如果节点没有项目,我发现该图标应该隐藏.但我想把它隐藏在树的各处.我只是想在选择节点文本时展开树(我实现了这个).解决方法 您可以将这些样式添加到Window或UserControl资源: <Window.Resources> <Style x:Key=”TreeViewItemFocusVisual”> <Setter Property=”Control.Template”> <Setter.Value> <ControlTemplate> <Border> <Rectangle Margin=”0,0″ strokeThickness=”5″ stroke=”Black” strokeDashArray=”1 2″ Opacity=”0″/> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key=”{x:Type TreeViewItem}” TargetType=”{x:Type TreeViewItem}”> <Setter Property=”Background” Value=”Transparent”/> <Setter Property=”HorizontalContentAlignment” Value=”{Binding Path=HorizontalContentAlignment,RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}”/> <Setter Property=”VerticalContentAlignment” Value=”{Binding Path=VerticalContentAlignment,RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}”/> <Setter Property=”Padding” Value=”1,0″/> <Setter Property=”Foreground” Value=”{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}”/> <Setter Property=”FocusVisualStyle” Value=”{StaticResource TreeViewItemFocusVisual}”/> <Setter Property=”Template”> <Setter.Value> <ControlTemplate TargetType=”{x:Type TreeViewItem}”> <Grid> <Grid.ColumnDeFinitions> <ColumnDeFinition Width=”10″/> <ColumnDeFinition Width=”Auto”/> <ColumnDeFinition Width=”*”/> </Grid.ColumnDeFinitions> <Grid.RowDeFinitions> <RowDeFinition Height=”Auto”/> <RowDeFinition/> </Grid.RowDeFinitions> <Border Name=”Bd” Grid.Column=”1″ Background=”{TemplateBinding Background}” BorderBrush=”{TemplateBinding BorderBrush}” BorderThickness=”{TemplateBinding BorderThickness}” Padding=”{TemplateBinding Padding}”> <ContentPresenter x:Name=”PART_Header” ContentSource=”Header” HorizontalAlignment=”{TemplateBinding HorizontalContentAlignment}”/> </Border> <ItemsPresenter x:Name=”ItemsHost” Grid.Row=”1″ Grid.Column=”1″ Grid.ColumnSpan=”2″/> </Grid> <ControlTemplate.Triggers> <Trigger Property=”IsExpanded” Value=”false”> <Setter TargetName=”ItemsHost” Property=”Visibility” Value=”Collapsed”/> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property=”HasHeader” Value=”false”/> <Condition Property=”Width” Value=”Auto”/> </MultiTrigger.Conditions> <Setter TargetName=”PART_Header” Property=”MinWidth” Value=”75″/> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property=”HasHeader” Value=”false”/> <Condition Property=”Height” Value=”Auto”/> </MultiTrigger.Conditions> <Setter TargetName=”PART_Header” Property=”MinHeight” Value=”19″/> </MultiTrigger> <Trigger Property=”IsSelected” Value=”true”> <Setter TargetName=”Bd” Property=”Background” Value=”{DynamicResource {x:Static SystemColors.HighlightBrushKey}}”/> <Setter Property=”Foreground” Value=”{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}”/> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property=”IsSelected” Value=”true”/> <Condition Property=”IsSelectionActive” Value=”false”/> </MultiTrigger.Conditions> <Setter TargetName=”Bd” Property=”Background” Value=”{DynamicResource {x:Static SystemColors.ControlBrushKey}}”/> <Setter Property=”Foreground” Value=”{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}”/> </MultiTrigger> <Trigger Property=”IsEnabled” Value=”false”> <Setter Property=”Foreground” Value=”{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}”/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style></Window.Resources>