你如何突出TreeViewItem?

我有一个简单的树视图,包含所有默认颜色。 单击某个项目时,它会突出显示,背景变为蓝色。 好到目前为止。 我正在尝试在后面的代码中执行相同的操作,以便我可以使用蓝色突出显示我选择的树视图项。 我发现我发现改变背景的唯一属性是“.IsSelected”。 但是当我将其设置为true时,树视图项目以白色突出显示。 我不明白。 我没有将高亮颜色设置为任何东西,那么为什么它会选择与使用鼠标单击选择相同项目时不同的高亮颜色? “突出显示”是一个与“选择”不同的属性,如果是,那么该属性的名称是什么?

谢谢。

编辑:添加代码(我的道歉,这很简单所以我认为没有人会想看到代码)

Xaml :(是的,这是整个代码。只需将其插入项目即可运行。)

           

代码背后:

 using System.Windows.Shapes; using System.IO; namespace TestTreeView { public partial class Window1 : System.Windows.Window { public Window1() { InitializeComponent(); } public void btnClick(object sender, RoutedEventArgs e) { TreeViewItem n1 = new TreeViewItem(); n1.Header = "Top Node"; n1.IsSelected = true; n1.Focus(); treeView.Items.Add(n1); } } } 

TreeviewItem.Focus()方法可以解决您的问题。 在您的代码中,您错过了设置ItemContainerStyle,并且您必须在添加到TreeView之后关注TreeViewItem,如下所示

         

 TreeViewItem n1 = new TreeViewItem(); n1.Header = "Top Node"; n1.IsSelected = true; Treeview1.Items.Add(n1); n1.Focus(); 

使用TreeViewItem的Focus()方法。

我相信最易维护的方法需要您将TreeView上的SelectedItemSelectedValue设置为控件的ItemsSource中感兴趣的项目之一。 如果您使用绑定,这应该很容易 – 只需更新ViewModel上的相应属性即可。

如果您试图模仿用户从列表中选择项目,则需要执行此操作。 如果我不正确或者您需要更多指导,请告诉我,但我们首先需要更多代码/示例。