27

我有一个树视图结构。当我尝试单击节点时,会出现蓝色显示所选节点。我怎样才能删除它。我不希望在树上显示选择颜色。

4

1 回答 1

74

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 中,您将看到一些奇怪的副作用,因为使用这些画笔的所有控件现在最终会使用您覆盖的那些,这可能不是您所追求的。

于 2013-07-23T15:38:27.310 回答