通过触发器更改文本块中文本的颜色

本文关键字:文本 中文 颜色 触发器 | 更新日期: 2023-09-27 18:35:53

这是我的Xaml

 <Window.Resources>
    <sampleData:MainWindow x:Key="DataSource"/>
    <DataTemplate x:Key="bobReferencer">                      
        <TextBlock Text="{Binding Name}" >
            <TextBlock.Style>
                <Style TargetType="TextBlock">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding HasErrors}" Value="true">
                          //what goes in here?
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </TextBlock.Style>
        </TextBlock>                                            
    </DataTemplate>    
</Window.Resources>

代码隐藏(xaml 引用的一个)

public class bob
{
    public string Name
    {
        get;
        set;
    }
    public bool HasErrors
    {
        get;
        set;
    }
 }

基本上我想做的是,如果 HasErrors 为真,那么我希望名称通过触发器显示为红色。但是我的 xaml 格式不正确。对此有什么建议吗? 我也查看了这个链接,但没有多大帮助。
如何使用触发器更改文本块的前景色?

通过触发器更改文本块中文本的颜色

你快到了。

        <Style TargetType="TextBlock">
            <Style.Triggers>
                <DataTrigger Binding="{Binding HasErrors}" Value="true">
                  <Setter Property="Foreground" Value="Red"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>

在 DataTrigger 中添加一个资源库

 <Setter Property="Foreground" Value="Red"/>