如何使相同的颜色为树视图项目和父

本文关键字:视图 项目 何使相 颜色 | 更新日期: 2023-09-27 18:01:23

我正在wpf中创建树视图。

每个父项目使用转换器设置随机前景色。我希望它的所有子元素都是相同的颜色。仅使用xaml.

下面是我的部分代码:

<HierarchicalDataTemplate DataType="{x:Type sotc:Category}" 
ItemsSource="{Binding Path=NoteList}">
  <TextBlock Text="{Binding Path=Name}" Forground="{Binding Path=Name,  Convert={StaticResource Converter1}}"/>
  </HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type sotc:Note}">
  <TextBlock Text="{Binding Path=Name}" />
  </HierarchicalDataTemplate>

我想做的是设置第二个树视图项(在xaml代码中),在HierarchicalData中的Children与它的父元素相同的背景颜色。有办法做到吗?

谢谢之前,

如何使相同的颜色为树视图项目和父

您可以尝试使用FindAncestor RelativeSource模式。只需将您的Note模板替换为以下模板:

<DataTemplate DataType="{x:Type sotc:Note}">
    <TextBlock Text="{Binding Path=Name}"
               Foreground="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorLevel=2, AncestorType=TreeViewItem}, Path=Header.Name, Converter={StaticResource Converter1}}"/>
</DataTemplate>

我使用了一个DataTemplate,但是如果你喜欢,你可以继续使用HierarchicalDataTemplate