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