【问题标题】:WPF combobox (non-dropdown item) highlight on mouseover鼠标悬停时突出显示 WPF 组合框(非下拉项)
【发布时间】:2015-10-27 14:37:16
【问题描述】:

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

【问题讨论】:

  • 我发现link 可能会为您提供问题的答案
  • 好东西,但看起来很复杂。

标签: c# wpf mvvm combobox


【解决方案1】:

您可以在触发器中定义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>

【讨论】:

  • 正如我所提到的,我并不是要设置组合框的颜色。我正在尝试在鼠标悬停时设置组合框本身的高亮颜色。
猜你喜欢
  • 1970-01-01
  • 2019-12-26
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多