比较列表中的双精度值,并根据值设置颜色
本文关键字:设置 颜色 双精度 比较 列表 | 更新日期: 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中我看到了两种方法。
- 使用double值和color属性创建包装器列表。你可以简单地在wpf中绑定两个值。
- 使用一个转换器为标签背景与双值作为输入。