Как изменить прозрачность цвета в С#
Я использую 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