Вы можете достичь sh своей цели, используя ItemContainerStyle
вместо ControlTemplate
.
Свойство Template
предоставляет весь XAML, необходимый для отображения элемента управления. В приведенном выше примере вы, по сути, стерли весь этот XAML и заменили его триггером.
An ItemContainerStyle
, однако, применяет стиль к каждому ComboBoxItem
. Затем вы можете использовать триггеры стиля для индивидуального выделения. Вот пример:
<ComboBox
...>
<ComboBox.ItemContainerStyle>
<Style BasedOn="{StaticResource {x:Type ComboBoxItem}}" TargetType="{x:Type ComboBoxItem}">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsSelected}" Value="False" />
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsMouseOver}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="TextElement.Foreground" Value="Red" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>