不同选定项目的WPFcombobox背景

我有4个项目的Combobox:Planing,Progress和Done,

     

如何更改ComboBox的背景颜色(由defult Gradiant决定)取决于选择了哪个项目。

例如:紫色表示刨光,蓝色表示进度,绿色表示完成。

注意:我的意思是ComboBox背景,而不是ComboBox项目列表。

谢谢

1)使用selectionChanged事件

您可以在comboBox_SelectionChanged事件中进行设置

 private void comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (comboBox.SelectedItem.ToString() == "Planning") { comboBox.Background = Brushes.Purple; } else if (comboBox.SelectedItem.ToString() == "Progress") { comboBox.Background = Brushes.Blue; } else if (comboBox.SelectedItem.ToString() == "Done") { comboBox.Background = Brushes.Green; } } 

每次更改combobox中的选定值时,都会调用comboBox_SelectionChanged事件。 在其中,您可以简单地validation所选项目的值并应用所需的颜色。

这将是Combobox的xaml

  

2)在XAML中使用DataTriggers

也可以通过在DataTrigger上设置多个DataTrigger来完成xaml

         

有关DataTriggers的更多信息:

表示在绑定数据满足指定条件时应用属性值或执行操作的触发器。