鼠标悬停时,WPF组合框(非下拉项)突出显示

时间:2015-10-27 14:37:16

标签: c# wpf mvvm combobox

我有一个组合框,当我将鼠标悬停在它上面时会突出显示为白色。我想改变这个鼠标的颜色而不是突出显示。我在这个网站上看了很多解决方案,但它们似乎都与下拉项本身有关。在我点击它以显示下拉列表之前,我正试图改变组合框的突出显示颜色。

1 个答案:

答案 0 :(得分:0)

您可以定义ComboBoxItem样式并在触发器中更改MouseOver的颜色。

<Style x:Key="{x:Type ComboBoxItem}" TargetType="ComboBoxItem">
  <Setter Property="SnapsToDevicePixels" Value="true"/>
  <Setter Property="OverridesDefaultStyle" Value="true"/>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="ComboBoxItem">
        <Border 
          Name="Border"
          Padding="2"
          SnapsToDevicePixels="true">
          <ContentPresenter />
        </Border>
        <ControlTemplate.Triggers>
          <Trigger Property="IsHighlighted" Value="true">
            <Setter TargetName="Border" Property="Background" Value="{StaticResource SelectedBackgroundBrush}"/>
          </Trigger>
          <Trigger Property="IsEnabled" Value="false">
            <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
          <Trigger Property="IsMouseOver" Value="true">
            <Setter Property="Foreground" Value="{StaticResource <<Your Static Brush color key>>"/>
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>