通过后面的代码在wpf中设置树视图的底色

时间:2014-11-01 09:03:03

标签: c# wpf treeviewitem

我目前正在工作的项目是wpf,而且我是wpf的新手。在我的项目中,我想搜索树视图,当匹配发生时,我需要突出显示该元素。我这样工作,我没有设置节点的背景颜色。

foreach (object item in treeView1.Items)
{
     cls.Node n=(cls.Node)item;
     n.IsSelected = true;               
}


任何人都可以帮助我。上面的代码是示例代码。

1 个答案:

答案 0 :(得分:2)

您必须让包装器TreeViewItem设置背景。由于TreeView在其ItemsPanelTemplate中不使用VirtualizingStackPanel,因此我们可以安全地使用ItemContainerGenerator从某个项目中获取TreeViewItem

foreach (object item in treeView1.Items) {
  //cls.Node n=(cls.Node)item;
  //n.IsSelected = true;               
  var tvItem = treeView1.ItemContainerGenerator.ContainerFromItem(item) 
               as TreeViewItem;
  if(tvItem != null) tvItem.Background = Brushes.Blue;//just an example
}

我不确定原始代码(上面评论过)是否属于您的尝试,因此如果您愿意,请取消注释(cls.Node实际上是您的自定义类)。

相关问题