Страницы

Поиск по вопросам

воскресенье, 22 декабря 2019 г.

Изменение внешнего вида выбранного TreeViewItem

#c_sharp #wpf #xaml #treeview


Здравствуйте, имею в своём приложении собственный обозреватель папок. В целом он
функционирует хорошо, но есть один недочёт: если нажать на тот, или иной TreeViewItem,
то он обводиться стандартным и не красивым синим прямоугольником. Как это можно изменить?
Надо заменить этот прямоугольник чем-то...

  
    


Ответы

Ответ 1



Элементы TreeView неявно (или явно, если ваш код это указывает) кладутся в TreeViewItem. Визуализация выбранных элементов/элементов с фокусом делается в TreeViewItem'е. То есть, вам нужно переопределить, как он выглядит. Насколько я понимаю, для этого вам нужно поменять его стиль (ItemContainerStyle), причём целиком. Кажется, нет возможности подменять лишь часть стиля. Вот здесь дан код, как этот стиль определён по умолчанию. (Ищите Style TargetType="controls:TreeViewItem".) Определение реально большое, но правильное. Его можно переопределить например так, как описано здесь (хотя техника немного устарела: вместо триггеров нужно бы использовать VisualState). Или вы можете базироваться на стиле по умолчанию, и подменить нужные части.

Ответ 2



Вам следует переопределить системный цвет, который хранится в ресурсе SystemColors.HighlightBrushKey на который и ссылается стандартный стиль TreeViewItem. Пример:

Комментариев нет:

Отправить комментарий