У меня есть структура treeview. Когда я пытаюсь щелкнуть по узлам, есть синий цвет, который показывает выбранный node. Как я могу удалить это. Я не хочу, чтобы на дереве отображался цвет выделения.
TreeView отображает синий цвет для выбранного элемента
Ответ 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
Замечательно, я нашел этот пост, когда искал ответ на вопрос "как сохранить выделение элемента в виде дерева, когда дерево теряет фокус". Это также будет работать для этого.