比较列表中的双精度值,并根据值设置颜色

本文关键字:设置 颜色 双精度 比较 列表 | 更新日期: 2023-09-27 18:08:44

我有一个双精度的列表,我想显示一个标签的值,这是好的。但是我想让背景有一个阴影,如果值接近最大值,红色,如果它接近最小值,蓝色,或者如果它接近中位数,白色。

    public partial class UserControlTest : Window
    {
    private double Highest;
    private double Minimum;
    private double Median;
    public UserControlTest()
    {
        InitializeComponent();
        DataSource dataSource = new DataSource();
        Data dataSet = dataSource.GetData();
        Bind(dataSet);
    }
    private void Bind(Data dataSet)
    {
        Highest = Convert.ToDouble(dataSet.Values.Max());
        Minimum = Convert.ToDouble(dataSet.Values.Min());
        Median = ((Highest - Minimum) / 2) + Minimum;
        stk1.Children.Add(DisplayLabel(dataSet));
        stk1.Children.Add(DisplayMax(dataSet));
        stk1.Children.Add(DisplayMin(dataSet));
        stk1.Children.Add(DisplayMed(dataSet));
    }
    private Label DisplayLabel(Data dataSet)
    {
        var label = new Label()
        {
            Content = String.Join(" , ", dataSet.Values),
            Background = new SolidColorBrush(Colors.AliceBlue)
        };
        return label;
    }

    private Label DisplayMax(Data dataSet)
    {
        var maxlabel = new Label() 
        {
            Background = new SolidColorBrush(Colors.Red)
        };
        return maxlabel;
    }
    private Label DisplayMin(Data dataSet)
    {
        var minlabel = new Label()
        {
            Background = new SolidColorBrush(Colors.Blue)
        };
        return minlabel;
    }
    private Label DisplayMed(Data dataSet)
    {
        var medlabel = new Label()
        {
            Content = Median,
            Background = new SolidColorBrush(Colors.Pink)
        };
        return medlabel;
    }

}

}

比较列表中的双精度值,并根据值设置颜色

在MVVM中我看到了两种方法。

  1. 使用double值和color属性创建包装器列表。你可以简单地在wpf中绑定两个值。
  2. 使用一个转换器为标签背景与双值作为输入。