В настоящее время при наведении указателя мыши на заголовок в TreeView заголовок выделяется. Я хотел бы навести указатель мыши на любую часть строки в TreeView, чтобы выделить всю строку (так же, как это делает проводник Windows). Может ли кто-нибудь привести пример того, как это сделать?
WPF TreeView выделяет строку при наведении курсора
Ответы (1)
Вам нужно изменить ControlTemplate
, чтобы TreeViewItem
фактически составлял всю ширину элемента управления.
Обсуждение этой проблемы и решение есть здесь:
http://leecampbell.blogspot.com/2009/01/horizontal-stretch-on-treeviewitems.html
Здесь есть еще один длинный ответ, без обсуждения:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b04f73e2-0b10-4d97-a6da-64df2e30c21d/
Поэтому я имел в виду, что эти примеры будут руководящими принципами. Если вы возьмете тот же код, что и во второй ссылке выше (с форумов MSDN), и просто добавьте это:
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="Bd"
Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
</Trigger>
к ControlTemplate
, вы увидите, что при наведении курсора мыши вы выделяете цвет выделения. Очевидно, вам нужно настроить цвет и еще много чего, но это то, что вам нужно сделать - изменить ControlTemplate
TreeViewItem
так, чтобы он занимал всю ширину, и добавить Trigger
вместо IsMouseOver
.