Подтвердить что ты не робот

TreeView отображает синий цвет для выбранного элемента

У меня есть структура treeview. Когда я пытаюсь щелкнуть по узлам, есть синий цвет, который показывает выбранный node. Как я могу удалить это.  Я не хочу, чтобы на дереве отображался цвет выделения.

4b9b3361

Ответ 1

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, вы увидите некоторые странные побочные эффекты, поскольку все элементы управления, использующие эти кисти, теперь будут использовать ваши переопределенные, которые могут быть не такими, какие вы после.

Ответ 2

Замечательно, я нашел этот пост, когда искал ответ на вопрос "как сохранить выделение элемента в виде дерева, когда дерево теряет фокус". Это также будет работать для этого.