我有一个包含所有默认颜色的简单树视图。当您单击一个项目时,它会突出显示并且背景变为蓝色。到目前为止还好。我正在尝试在后面的代码中做同样的事情,以便我可以将我选择的树视图项目以蓝色突出显示。我看到的唯一改变背景的属性是“.IsSelected”。但是,当我将其设置为 true 时,树视图项以白色突出显示。我不明白。我没有将突出显示颜色设置为任何内容,那么为什么它会选择与单击鼠标选择相同项目时不同的突出显示颜色?“突出显示”是与“选择”不同的属性吗?如果是,那么该属性的名称是什么?
谢谢。
编辑:添加代码(我很抱歉,这太简单了,所以我认为没有人想看到代码)
Xaml:(是的,这是整个代码。只需将其插入项目中即可运行。)
<Window x:Class="TestTreeView.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Tree View Icon"
ShowInTaskbar="false"
Name ="MyTestTreeView"
Background="Beige"
Width="500"
Height ="500"
>
<StackPanel Name="stackpanel">
<Button Name="AddNode" Click="btnClick">
AddNode
</Button>
<ScrollViewer HorizontalScrollBarVisibility="auto" VerticalScrollBarVisibility="hidden" Name="scrollViewer">
<TreeView Name="treeView" BorderThickness="0">
<TreeView.Resources>
<SolidColorBrush Color="Red" x:Key="{x:Static SystemColors.HighlightBrushKey}"/>
</TreeView.Resources>
</TreeView>
</ScrollViewer>
</StackPanel>
后面的代码:
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);
}
}
}