Я переношу свое приложение WPF из .NET Framework в .NET Core 3.0.
Ранее я использовал следующий «хак», чтобы переопределить выбранный несфокусированный цвет фона для TreeViewItem:
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="{x:Static SystemColors.HighlightColor}"/>
</Style.Resources>
</Style>
</TreeView.ItemContainerStyle>
Но это не работает в .NET Core 3.0: несфокусированные выделенные элементы по-прежнему имеют светло-серый фон.
Шаблон по умолчанию в MSDN использует {StaticResource SelectedUnfocusedColor}
для этого цвета, поэтому я попытался переопределить его, поместив желаемый <Color>
в раздел Ресурсы TreeView - это не помогло.
Я также пытался создать <Trigger>
в Style.Triggers для стиля TreeViewItem, установив цвет фона на {x:Static SystemColors.HighlightColor}
, когда IsSelected - True, но это тоже не помогло.
У меня нет идей, и Google не предлагает особой помощи (единственной другой идеей, которую я не пытался, было полностью пересмотреть TreeViewItem, который кажется немного излишним, учитывая размер шаблона по умолчанию.