通过WPF转换器更改字体颜色

时间:2019-01-07 07:34:54

标签: c# wpf fonts colors

在我的xaml中,我有标签:

<Label Content="{Binding Path=HSValidation, Converter={StaticResource HSFontConverter}}" />

到转换器中,我想将标签字体更改为“ RED”:

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{           
  if (value != null)
   {

       return value; //should be value with changed color       
   }          
  return value;  
}

我可以只使用C#代码吗?

还是我需要标签的名称属性?

1 个答案:

答案 0 :(得分:2)

转换器只能将源值转换为其他值,因此您只能通过绑定将“ Content”属性转换为其他值。

因此,应将内容按原样绑定到某些东西,然后将“前景”属性绑定到颜色。

{
  "quality": true,
  "tagname": "P1002",
  "timestamp": 1543295658092,
  "value": 23
}

例如,您应该在转换器代码中返回Brushes.Red,并在转换器的所有分支上返回Brush,而不是绑定值:

<Label 
    Content="{Binding Path=HSValidation}" 
    Foreground="{Binding Path=HSValidation, Converter={StaticResource HSFontConverter}}" />