Создайте Converter
, который возвращает Green
, если указанное значение выше 0, и Red
, если оно ниже 0, и используйте его для определения цвета переднего плана вашего текста
public class NumberToColorBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is double)
{
return (((double)value) > 0 ? Brushes.Green : Brushes.Red);
}
throw new Exception("Invalid Value");
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
* 1006.* Затем вы можете использовать свой конвертер следующим образом:
<Window.Resources>
<local:NumberToColorBrushConverter x:Key="NumberToColorBrushConverter" />
</Window.Resources>
<TextBlock Text="{Binding Result}" Foreground={Binding Result,
Converter={StaticResource NumberToColorBrushConverter}}" />
Редактировать
Если в ваших данных есть значение, которое определяет положительный или отрицательный, то вы неТ даже нужно использовать конвертер.Вот пример, который использует DataTrigger
<Window.Resources>
<Style x:Key="ResultTextBlockStyle" TargetType="{x:Type TextBlock}">
<Style.Triggers>
<Setter Property="Foreground" Value="Green" />
<DataTrigger Binding="{Binding PositiveOrNegative}" Value="Negative">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<TextBlock Text="{Binding Result}" Style="{StaticResource ResultTextBlockStyle}" />