Строки цветового кода в сетке данных на основе градиента в формах VB.Net

У меня есть сетка, содержащая строки, отмеченные разными приоритетами. Я хочу покрасить строки с высоким приоритетом в красный цвет, с низким - в синий и т.д.

Я хотел бы установить оттенок на основе математически рассчитанного градиента, а не произвольно назначать цвета определенным приоритетам. Как я могу извлечь один цвет из одной точки по градиенту?


person Jeff    schedule 20.04.2010    source источник


Ответы (1)


Как насчет чего-то вроде

ВБ.Нет

Private Shared Function ColorGradientRedToBlue(ByVal index As Single) As Color
    If index < 0 OrElse index > 1.0R Then
        Throw New ArgumentException("index must be between 0 and 1")
    End If
    Return Color.FromArgb(CInt(((1.0R - index) * 255)), 0, CInt((index * 255)))
End Function

C#

static Color ColorGradientRedToBlue(float index)
{
    if (index < 0 || index > 1.0)
        throw new ArgumentException("index must be between 0 and 1");
    return Color.FromArgb((int)((1.0 - index) * 255), 0 ,(int)(index * 255));
}
person Adriaan Stander    schedule 20.04.2010