最好的选项是使用带有GetPixel的图像:
![Temperature Gradient](https://istack.dev59.com/8Z24I.webp)
private void UpdateTemp()
{
Bitmap temps = (Bitmap)Properties.Resources.temp;
if (curTemp >= 0)
{
int i = curTemp;
if (i < 0)
i = 0;
if (i > temps.Width-1)
i = temps.Width-1;
this.BackColor = temps.GetPixel(i, 10);
}
}
或者构建一个数组。 来源
private static Color[] colors =
{
Color.FromArgb(155, 188, 255),
Color.FromArgb(155, 188, 255),
Color.FromArgb(155, 188, 255),
Color.FromArgb(155, 188, 255),
Color.FromArgb(156, 188, 255),
Color.FromArgb(156, 188, 255),
Color.FromArgb(156, 189, 255),
Color.FromArgb(156, 189, 255),
Color.FromArgb(156, 189, 255),
Color.FromArgb(157, 189, 255),
Color.FromArgb(157, 189, 255),
Color.FromArgb(157, 189, 255),
Color.FromArgb(157, 189, 255),
Color.FromArgb(157, 189, 255),
Color.FromArgb(158, 190, 255),
Color.FromArgb(158, 190, 255),
Color.FromArgb(158, 190, 255),
Color.FromArgb(158, 190, 255),
Color.FromArgb(159, 190, 255),
Color.FromArgb(159, 190, 255),
Color.FromArgb(159, 191, 255),
Color.FromArgb(159, 191, 255),
Color.FromArgb(160, 191, 255),
Color.FromArgb(160, 191, 255),
Color.FromArgb(160, 191, 255),
Color.FromArgb(161, 192, 255),
Color.FromArgb(161, 192, 255),
Color.FromArgb(161, 192, 255),
Color.FromArgb(162, 192, 255),
Color.FromArgb(162, 193, 255),
Color.FromArgb(163, 193, 255),
Color.FromArgb(163, 193, 255),
Color.FromArgb(163, 194, 255),
Color.FromArgb(164, 194, 255),
Color.FromArgb(164, 194, 255),
Color.FromArgb(165, 195, 255),
Color.FromArgb(166, 195, 255),
Color.FromArgb(166, 195, 255),
Color.FromArgb(167, 196, 255),
Color.FromArgb(168, 196, 255),
Color.FromArgb(168, 197, 255),
Color.FromArgb(169, 197, 255),
Color.FromArgb(170, 198, 255),
Color.FromArgb(171, 198, 255),
Color.FromArgb(172, 199, 255),
Color.FromArgb(173, 200, 255),
Color.FromArgb(174, 200, 255),
Color.FromArgb(175, 201, 255),
Color.FromArgb(176, 202, 255),
Color.FromArgb(177, 203, 255),
Color.FromArgb(179, 204, 255),
Color.FromArgb(180, 205, 255),
Color.FromArgb(182, 206, 255),
Color.FromArgb(184, 207, 255),
Color.FromArgb(186, 208, 255),
Color.FromArgb(188, 210, 255),
Color.FromArgb(191, 211, 255),
Color.FromArgb(193, 213, 255),
Color.FromArgb(196, 215, 255),
Color.FromArgb(200, 217, 255),
Color.FromArgb(204, 219, 255),
Color.FromArgb(208, 222, 255),
Color.FromArgb(214, 225, 255),
Color.FromArgb(220, 229, 255),
Color.FromArgb(227, 233, 255),
Color.FromArgb(235, 238, 255),
Color.FromArgb(245, 243, 255),
Color.FromArgb(255, 249, 253),
Color.FromArgb(255, 243, 239),
Color.FromArgb(255, 236, 224),
Color.FromArgb(255, 228, 206),
Color.FromArgb(255, 219, 186),
Color.FromArgb(255, 209, 163),
Color.FromArgb(255, 196, 137),
Color.FromArgb(255, 180, 107),
Color.FromArgb(255, 161, 72),
Color.FromArgb(255, 137, 18),
Color.FromArgb(255, 109, 0),
Color.FromArgb(255, 51, 0),
};
temperature
不是一个单一的值,可以直接映射到简单预定义的渐变色条上的单个点吗? - Bobby