我有一个树视图,我需要将所选节点的字体设置为粗体..如果节点没有任何子节点,它可以正常工作.但是如果选择了具有子节点的节点,则子节点也显示为粗体. 使用以下XAML: TreeView.ItemC
使用以下XAML:
<TreeView.ItemContainerStyle> <Style TargetType="TreeViewItem"> <Style.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter Property="FontWeight" Value="Bold"></Setter> </Trigger> </Style.Triggers> </Style> </TreeView.ItemContainerStyle>编辑:您可以使用setter来阻止继承:
<Style TargetType="TreeViewItem"> <!-- This has precedence over inheritance --> <Setter Property="FontWeight" Value="Normal"/> <Style.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter Property="FontWeight" Value="Bold"></Setter> </Trigger> </Style.Triggers> </Style>
或者您可以将此逻辑移动到数据模板中,因此不会继承该逻辑,例如
<TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Items}"> <TextBlock Text="{Binding Name}"> <TextBlock.Style> <Style TargetType="TextBlock"> <Style.Triggers> <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=TreeViewItem}}" Value="True"> <Setter Property="FontWeight" Value="Bold"/> </DataTrigger> </Style.Triggers> </Style> </TextBlock.Style> </TextBlock> </HierarchicalDataTemplate> </TreeView.ItemTemplate>