2013-07-23 59 views
17

我有一个treeview结构。当我尝试点击节点时,会出现蓝色,显示所选节点。我如何删除它。 我不希望选择颜色显示在树上。TreeView显示蓝色的选定项目

+0

此问题已被提问并回答了数百万次。 –

+0

可能的重复[如何突出显示树形视图选择的项目与某种颜色?](http://stackoverflow.com/questions/876759/how-do-i-highlight-a-treeview-selected-item-with-some -color) –

回答

43

ItemContainerStyle方法不适用于我说在Windows-8上。有4个电刷,通常对应于这一点,由默认模板TreeViewItem

键用于:

HighlightBrushKey - 背景具有焦点。

HighlightTextBrushKey - 与焦点的前景。

InactiveSelectionHighlightBrushKey - 背景没有焦点。

InactiveSelectionHighlightTextBrushKey - 前景无焦点。

只是覆盖它们,你认为合适,您需要像这样的细做:

<TreeView> 
    <TreeView.Resources> 
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" 
         Color="Transparent" /> 
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" 
         Color="Black" /> 
    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" 
         Color="Transparent" /> 
    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" 
         Color="Black" /> 
    </TreeView.Resources> 
</TreeView> 

千万要注意只有你所需要的范围内覆盖它们。例如,如果将所有这些放到App.xaml中,您将看到一些奇怪的副作用,因为所有使用这些画笔的控件现在都将使用您的重写内容,而这些内容可能并非您所追求的内容。

+1

谢谢,这正是我一直在寻找的! – HXD

+2

请注意,'SystemColors.InactiveSelectionHighlightBrushKey'和'SystemColors.InactiveSelectionHighlightTextBrushKey'仅适用于.NET 4.5或更高版本。 – bitbonk