【问题标题】:Change TextBlock Background based on the value of Text根据 Text 的值更改 TextBlock 背景
【发布时间】:2014-01-10 18:20:26
【问题描述】:

如果 Text 为 00:00,我想更改 TextBlock 的 Background 属性。有简单的 XAML 解决方案吗?我试过创建一个 DataTrigger 但它没有改变颜色

        <Style TargetType="TextBlock" x:Key="textBlock">
            <Style.Triggers>
                <DataTrigger Binding="{Binding}" Value="00:00">
                    <Setter Property="Background" Value="Red" />
                </DataTrigger>
            </Style.Triggers>
        </Style>

<TextBlock Text="{Binding}" Margin="3" Style="{DynamicResource textBlock}"/>

【问题讨论】:

    标签: c# wpf xaml .net-4.0


    【解决方案1】:

    普通的Trigger呢?:

    <Style TargetType="TextBlock" x:Key="textBlock">
        <Style.Triggers>
            <Trigger Property="TextBlock.Text" Value="00:00">
                <Setter Property="Background" Value="Red" />
            </Trigger>
        </Style.Triggers>
    </Style>
    

    【讨论】:

      【解决方案2】:

      我认为您在数据触发器中的绑定应该是

      Binding="{Binding RelativeSource={RelativeSource Self},Path=Text}"
      

      【讨论】:

      • 虽然您的 Binding 语法 正确,但使用 DataTrigger 和它的 Binding 是没有意义的,如果可以的话需要额外的资源使用更轻量级的Trigger 代替。
      猜你喜欢
      • 2011-11-25
      • 1970-01-01
      • 2013-08-30
      • 2021-02-25
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多