Как изменить прозрачность цвета в С#

Я использую SSRS reportviewer для создания отчета с использованием объектов. В моей программе я прошу пользователя ввести строку широко известных цветов, таких как "Red", "Blue" и т.д. Я бы хотел создать три оттенка этого цвета и использовать этот цвет для заполнения диаграммы области в моем отчете. Я делаю так, чтобы изменить прозрачность (альфа) цвета.

Это мой код, который преобразует строку в цвет:

 newitem.ChartColor = "red";
 Color mycolor = Color.FromName(newitem.ChartColor);

Однако теперь я хотел бы создать еще два цвета с тем же оттенком, что и красный, но отличается альфа (непрозрачность), чтобы они выглядели светлее, что-то вроде #56FF0000

Я попытался передать значение в свойство A для Color, но он доступен только для чтения.

Любая помощь была оценена.

Ответ 1

Есть метод, который делает именно то, что вам нужно. Color.FromArgb(int alpha, Color baseColor).

Допустимые значения alpha: от 0 до 255. Где 255 - самый непрозрачный цвет, а 0 - полностью прозрачный.

Пример использования

Color newColor = Color.FromArgb(newAlpha, mycolor);

Ответ 2

Вы можете установить эту функцию

    static Color SetTransparency(int A, Color color)
    {
        return Color.FromArgb(A, color.R, color.G, color.B);
    }

Ответ 3

Я думаю, что то, что должно быть включено среди этих ответов, состоит в том, что альфа-значение указывает, насколько прозрачным является цвет с 0, который является самым прозрачным, а 255 - самым непрозрачным. Вот резюме:

                     A L P H A    V A L U E
0 [<--- most transparent]  ... ... ... [most opaque --->] 255