Nim*_*esh 7 wpf combobox mvvm background-color
有谁知道,
如何在WPF中单击(ComboBox打开)时更改Combobox背景颜色?
这是一个有点幼稚的方法:
<ComboBox
ItemsSource="{x:Static Fonts.SystemFontFamilies}"
Width="100"
>
<ComboBox.Style>
<Style TargetType="ComboBox">
<Setter Property="Background" Value="Green" />
<Style.Triggers>
<Trigger Property="IsDropDownOpen" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
最初,这将Background属性设置为,但安排它在下拉列表出现时Green转到。Red然而,这样做有两个问题:
ComboBox.Background属性仅影响按钮本身的外观,而不影响下拉列表。您真正想要做的可能是更改弹出部分的背景颜色。如果 2 是你想要的,这可以解决问题:
<ComboBox
ItemsSource="{x:Static Fonts.SystemFontFamilies}"
Width="100" >
<ComboBox.Resources>
<Style TargetType="ComboBoxItem">
<Setter Property="Background" Value="Orange" />
</Style>
</ComboBox.Resources>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
严格来说,这实际上是改变背景颜色ComboBoxItem严格来说,这实际上是更改下拉列表中显示的控件
但是,如果您想修复1,则需要自定义模板,因为内置模板ComboBox并没有真正为该属性提供很好的支持Background,因为它会在各种情况下更改按钮部分的颜色。Aero 主题的外观ComboBox实际上并不支持自定义背景颜色,因此您需要为控件创建自己的自定义外观。
| 归档时间: |
|
| 查看次数: |
4325 次 |
| 最近记录: |