根据内容或CustomDP值设置按钮的背景

时间:2014-08-29 05:02:48

标签: c# wpf

我有一个按钮,其内容属性会根据从ViewModel设置的某些条件不断变化。基本上它设置一个从0到1000的值。

我在同一个按钮上还有另一个自定义DP属性,其值可以设置为某个枚举。

我想解决的问题如下(不幸的是我不知道应该如何解决):

如果我的按钮内容值为0 - 按钮的背景应为灰色。 如果我的按钮内容值为1 - 按钮的背景应为黄色。 如果我的按钮内容值是1&自定义DP具有值集(不是默认值) - 背景应更改为红色。

如果我的问题陈述只是处理基于内容上设置的整数设置背景 - 我可以轻松地使用转换器(String to Brush)并设置我的背景。但是现在根据自定义DP值设置背景的最后一个条件 - 不知道如何解决...

有人可以建议我一个方法 - 解决这个问题的示例代码。

2 个答案:

答案 0 :(得分:1)

 <Button Content="0">
        <Button.Style>
            <Style TargetType="Button">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},Path=Content}" Value="0">
                        <Setter Property="Background" Value="Gray"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},Path=Content}" Value="1">
                        <Setter Property="Background" Value="Yellow"/>
                    </DataTrigger>
                    <MultiDataTrigger>
                        <MultiDataTrigger.Conditions>
                            <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=Content}" Value="1"/>
                            <Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=YourDP}" Value="YourValue"/>
                        </MultiDataTrigger.Conditions>
                        <MultiDataTrigger.Setters>
                            <Setter Property="Background" Value="Red"/>
                        </MultiDataTrigger.Setters>
                    </MultiDataTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>

答案 1 :(得分:0)

您可以使用多条件触发器或多数据触发器。请参阅此link和此link