wpf 非常漂亮ItemsControl DataTrigger 里面的元素不同值不同的颜色 DataTrigger TextBlock如何设置有值就有背景颜色,如果内容为空就没有颜色

在WPF中,可以通过DataTrigger和Binding来实现根据TextBlock内容是否有值来改变背景颜色。以下是一个示例:

<ItemsControl ItemsSource="{Binding Lists}" Margin="0" Padding="0">
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <WrapPanel Orientation="Horizontal"/>
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding}" Width="29" Height="20" Padding="0 3 0 0"
                                   Foreground="#FFFFFF" FontSize="10" Margin="0 0 1 0" TextAlignment="Center">
                                <TextBlock.Style>
                                    <Style TargetType="TextBlock">
                                        <Setter Property="Background" Value="#680391"/>
                                        <!-- 默认背景紫色  黄色#FACF0B-->
                                        <Style.Triggers>
                                            <DataTrigger Binding="{Binding}" Value="">
                                                <Setter Property="Background" Value="Transparent"/>
                                                <!-- 文本为空时背景色为透明 -->
                                            </DataTrigger>
                                            <DataTrigger Binding="{Binding}" Value="{x:Null}">
                                                <Setter Property="Background" Value="Transparent"/>
                                                <!-- 文本为null时背景色为透明 -->
                                            </DataTrigger>
                                            <DataTrigger Binding="{Binding}" Value="{x:Static sys:String.Empty}">
                                                <Setter Property="Background" Value="Transparent"/>
                                                <!-- 文本为String.Empty时背景色为透明 -->
                                            </DataTrigger>
                                        </Style.Triggers>
                                    </Style>
                                </TextBlock.Style>
                            </TextBlock>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>

在这个例子中,我们设置了三个DataTrigger来检查TextBlock的Text属性是否为空、null或String.Empty。如果满足这些条件,背景色将被设置为透明。最后一个DataTrigger用于当TextBlock有值时设置你想要的背景颜色。

请注意,这个示例使用了System命名空间的别名sys,请在XAML文件的开头添加以下行:

xmlns:sys="clr-namespace:System;assembly=mscorlib"

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weijia3624

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值