c# - WPF Combobox背景為不同的選定的項目



styles (1)

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_SelectionChanged事件。 在它裡面,你可以簡單地驗證所選項目的值並應用你想要的顏色。

這將是Combobox的xaml

<ComboBox x:Name="comboBox" SelectionChanged="comboBox_SelectionChanged"/>

2)在XAML中使用DataTriggers

它也可以通過在DataTrigger上設置多個DataTrigger來完成

<ComboBox x:Name="mycombobox">
    <ComboBox.Style>
        <Style TargetType="{x:Type ComboBox}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=SelectedItem.Content, ElementName=mycombobox}" Value="Planning">
                    <Setter Property="Background" Value="Purple" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Path=SelectedItem.Content, ElementName=mycombobox}" Value="Progress">
                    <Setter Property="Background" Value="Blue" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Path=SelectedItem.Content, ElementName=mycombobox}" Value="Done">
                    <Setter Property="Background" Value="Green" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </ComboBox.Style>
    <ComboBoxItem Content="Planning"/>
    <ComboBoxItem Content="Progress"/>
    <ComboBoxItem Content="Done"/>
</ComboBox>

有關DataTriggers的更多信息:

表示在綁定數據滿足指定條件時應用屬性值或執行操作的觸發器。

我有Combobox只有3項:刨,進展和完成,

<ComboBox SelectedIndex="0>
    <ComboBoxItem Content="Planing"/>
    <ComboBoxItem Content="Progress"/>
    <ComboBoxItem Content="Done"/>
</ComboBox>

我如何改變組合框的背景顏色(這是通過漸變漸變)取決於哪個項目被選中。

例如:Planing為紫色,Progress為藍色,Done為綠色。

注:我的意思是組合框背景,而不是組合框項目列表。

謝謝





styles