У меня есть список объектов со свойством Color. Список может содержать любое количество элементов в диапазоне от 10 до 4000. Я хочу, чтобы свойство Color первого элемента было зеленым, а последний - красным. И все промежуточные элементы должны получать цвета между красным и зеленым (градиент) в зависимости от их положения (сначала зеленый и позднее красный. Следующий код работает только в том случае, если число списков меньше 255. Он возвращает весь белый цвет если размер списка превышает 255
Color start = Colors.White;
Color end = Colors.Green;
int steps = lstTag.Count;
int stepA = ((end.A - start.A) / (steps - 1));
int stepR = ((end.R - start.R) / (steps - 1));
int stepG = ((end.G - start.G) / (steps - 1));
int stepB = ((end.B - start.B) / (steps - 1));
int i = 0;
foreach (ArgsData data in lstTag)
{
var a = byte.Parse((start.A + (stepA * i)).ToString());
var r = byte.Parse((start.R + (stepR * i)).ToString());
var g = byte.Parse((start.G + (stepG * i)).ToString());
var b = byte.Parse((start.B + (stepB * i)).ToString());
data.ColorCode = new SolidColorBrush(Color.FromArgb(a, r, g, b));
i++;
}
Любая помощь будет высоко оценена.