WPF: 数据绑定,条件属性设置器

16

我有一个属性通过绑定进行赋值。Color 属性的值被设置为 Color 属性。

<Rectangle.Fill>
       <SolidColorBrush Color="{Binding Path=Color}"/>
</Rectangle.Fill>

我该如何重构为条件绑定,例如:

   <Rectangle.Fill>
           <SolidColorBrush Color="{Binding Path=SomeBooleanProperty ? #FF0000 : #00FF00 }"/>
    </Rectangle.Fill>
2个回答

30

谢谢你,@Jackson,最终代码如下:

<Style TargetType="Rectangle" x:Key="ColorBySuccess">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=Success}" Value="True">
                    <Setter Property="Fill" Value="#00FF00"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
...
<Rectangle Fill="Green" Style="{StaticResource ColorBySuccess}" .../>

2
尝试像这样根据控件的任何属性来更改样式:
试试以下代码:
<Style x:Key="SwitchStyle" TargetType="Switch">
            <Setter Property="OnColor" Value="{StaticResource LightGray}"/>
            <Style.Triggers>
                <Trigger TargetType="Switch" Property="IsToggled" Value="True">
                    <Setter Property="ThumbColor" Value="{StaticResource Primary}"/>
                </Trigger>
                <Trigger TargetType="Switch" Property="IsToggled" Value="False">
                    <Setter Property="ThumbColor" Value="{StaticResource DarkGray}"/>
                </Trigger>
            </Style.Triggers>
        </Style>

这个方法可行,但我不得不从两个<Trigger>标签中删除TargetType="Switch",否则编译器会报错。 - infografnet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接