#c_sharp #wpf #xaml #treeview
Здравствуйте, имею в своём приложении собственный обозреватель папок. В целом он функционирует хорошо, но есть один недочёт: если нажать на тот, или иной TreeViewItem, то он обводиться стандартным и не красивым синим прямоугольником. Как это можно изменить? Надо заменить этот прямоугольник чем-то...
Ответы
Ответ 1
Элементы TreeView неявно (или явно, если ваш код это указывает) кладутся в TreeViewItem. Визуализация выбранных элементов/элементов с фокусом делается в TreeViewItem'е. То есть, вам нужно переопределить, как он выглядит. Насколько я понимаю, для этого вам нужно поменять его стиль (ItemContainerStyle), причём целиком. Кажется, нет возможности подменять лишь часть стиля. Вот здесь дан код, как этот стиль определён по умолчанию. (Ищите Style TargetType="controls:TreeViewItem".) Определение реально большое, но правильное. Его можно переопределить например так, как описано здесь (хотя техника немного устарела: вместо триггеров нужно бы использовать VisualState). Или вы можете базироваться на стиле по умолчанию, и подменить нужные части.Ответ 2
Вам следует переопределить системный цвет, который хранится в ресурсе SystemColors.HighlightBrushKey на который и ссылается стандартный стиль TreeViewItem. Пример:
Комментариев нет:
Отправить комментарий