如果超过某个值,如何更改文本框中的字体

Joh*_*ris 0 c# wpf xaml datatrigger

如果超过5,我想将文本框中文本的颜色更改为蓝色.

最简单的方法是什么?

我以为会有一个简单的textbox.FontColor = Blue; 但是我找不到这样的东西

Mud*_*uds 7

你需要一个数据触发器和一个值转换器 -

<DataTrigger
                Binding="{Binding Path=PROPERTY,
                Converter={StaticResource GreaterThanConverter},
                ConverterParameter=5}"
                Value="True">
                <Setter Property="TextBox.Foreground" Value="Blue" />
Run Code Online (Sandbox Code Playgroud)

转换器可能看起来像 -

 public class GreaterThanConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var limit = (int)parameter;
        return (int)value > limit;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这是完全正确的方法.在代码隐藏中设置`Foreground`通常是不正确的. (2认同)