我实际上会使用布尔型转换器。
public class BoolToStyleConverter : IValueConverter
{
public Style TrueStyle { get; set; }
public Style FalseStyle { get; set; }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return ((bool)value) ? TrueStyle : FalseStyle;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
然后在资源部分中设置2个公共样式属性。
<localHelpers:BoolToStyleConverter x:Key="boolToHistoryTextBlockStyleConverter">
<localHelpers:BoolToStyleConverter.TrueStyle>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="Red"></Setter>
</Style>
</localHelpers:BoolToStyleConverter.TrueStyle>
<localHelpers:BoolToStyleConverter.FalseStyle>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="Black"></Setter>
</Style>
</localHelpers:BoolToStyleConverter.FalseStyle>
</localHelpers:BoolToStyleConverter>
本示例设置前景色,但可以设置任何样式。 要绑定这个,你需要设置转换器,在这种情况下,如果IsCommentChange为True,文本将会变成红色,如果它是假的,那么它是黑色的。
<TextBlock Name="tbComment" Text="{Binding Path=Comment,Mode=OneTime}"
TextWrapping="Wrap"
Style="{Binding Path=IsCommentChanged,
Converter={StaticResource boolToHistoryTextBlockStyleConverter}}" />
嗨@Rich任何示例代码,你可以提供实现相同的? – highlander141 2017-09-22 08:21:33