2010-03-05 97 views
0

我加入这个Style到的App.xaml改变我的应用程序的所有ComboBox ES的外观:WPF组合框的颜色

<Style TargetType="ComboBox"> 
     <Setter Property="Foreground" Value="White"/> 
     <Setter Property="Background" Value="#303030"/> 
     <Setter Property="BorderBrush" Value="#000000"/> 
    </Style> 

有,我一直无法设置两种颜色:

1)Background颜色时IsEnabled=false

2)当鼠标在ComboBox高亮Background颜色。

我该如何改变这两种颜色?

[编辑:它看起来像高光颜色是不一样的鼠标悬停颜色,因为当我将鼠标移动到ComboBox它将简单地将我定义为鼠标的颜色转变为颜色,然后变成一些其他颜色(浅蓝色)]

回答

2

您想检查样式触发器。还需要重写ItemContainerStyle以摆脱默认的浅蓝色选择颜色

<Style.Triggers> 
    <Trigger Property="IsMouseOver" Value="true"> 
    <Setter Property="Background" Value="SomeColor" /> 
    </Trigger> 
    <Trigger Property="IsEnabled" Value="false"> 
    <Setter Property="Background" Value="SomeOtherColor" /> 
    </Trigger> 
</Style.Triggers> 
+0

突出显示不起作用。我为IsMouseOver设置了红色,并且它在大约四分之一秒内变成红色,然后高亮颜色变为浅蓝色(用于直接转向)。 – Warpin 2010-03-05 08:11:17

+2

我希望你把这个风格放到ItemContainerStyle(这是用于ComboBoxItem的风格) – 2010-03-05 19:15:25