【问题标题】:Set Background of button based on Content or CustomDP value根据 Content 或 CustomDP 值设置按钮的背景
【发布时间】:2014-08-29 13:33:07
【问题描述】:

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

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

我要解决的问题如下(不幸的是我不知道该怎么做):

如果我的按钮内容值为 0 - 按钮的背景应该是灰色。 如果我的按钮内容值为 1 - 按钮的背景应该是黄色的。 如果我的按钮内容值为 1 并且自定义 DP 设置了一个值(不是默认值) - 背景应更改为红色。

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

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

【问题讨论】:

    标签: c# wpf


    【解决方案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>
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2020-08-14
        • 1970-01-01
        • 1970-01-01
        • 2021-05-04
        • 1970-01-01
        • 1970-01-01
        • 2011-07-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多