我有一个 wpf 列表框,它实现了一个包含 TextBlock 的 DataTemplate。
<local:BooleanToFontColorConverter x:Key="boolToFontColor" />
<DataTemplate x:Key="ListBox_DataTemplateSpeakStatus">
<Label Width="Auto">
<TextBlock Foreground="{Binding Path=myProperty, Converter={StaticResource boolToFontColor}}" />
</Label>
</DataTemplate>
我手头的任务是改变“myProperty”,我希望字体的颜色不同。我的转换器如下所示:
public class BooleanToFontColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
if (value is Boolean)
{
return ((bool)value) ? new SolidColorBrush(Colors.Red) : new SolidColorBrush(Colors.Black);
}
return new SolidColorBrush(Colors.Black);
}
public object ConvertBack(object value, Type targetType, object parameter,
CultureInfo culture)
{
throw new NotImplementedException();
}
}
这行得通。更改绑定属性时,字体颜色(前景)将变为红色。
我的问题是:我希望我的字体变为红色、粗体和斜体。我知道这可以通过使用文本块内联来实现,但是是否可以使用我的转换器来完成所有这三件事?
感谢所有有想法和洞察力的人做出回应。