如何在c#中更改颜色的透明度

Shr*_*oor 17 c# reportviewer

我正在使用SSRS reportviewer生成使用对象的报告.在我的程序中,我要求用户输入一串众所周知的颜色,例如"Red"" Blue",等等.然后我想生成这种颜色的三种色调,并使用此颜色填充我的报告中的区域图表.我做所以我改变了颜色的不透明度(alpha).

这是我将代码转换为颜色的代码:

 newitem.ChartColor = "red";
 Color mycolor = Color.FromName(newitem.ChartColor);
Run Code Online (Sandbox Code Playgroud)

但是,现在我想生成两种颜色与红色相同但不同的alpha(不透明度)的颜色,以便它们看起来更亮,类似于 #56FF0000

我尝试将值传递给AColor 的属性,但它是只读的.

任何帮助赞赏.

Ma3*_*a3x 20

有一种方法可以完全满足您的需要Color.FromArgb(int alpha,Color baseColor).

有效alpha值为0到255.其中255是最不透明的颜色,0是完全透明的颜色.

使用示例

Color newColor = Color.FromArgb(newAlpha, mycolor);
Run Code Online (Sandbox Code Playgroud)


Jaz*_*mov 7

我认为这些答案中需要包括的是 alpha 值表示颜色的透明度,0 表示最透明,255 表示最不透明。这是一个总结:

                     A L P H A    V A L U E
0 [<--- most transparent]  ... ... ... [most opaque --->] 255
Run Code Online (Sandbox Code Playgroud)


Agh*_*oub 5

您可以使用此功能进行设置

    static Color SetTransparency(int A, Color color)
    {
        return Color.FromArgb(A, color.R, color.G, color.B);
    }
Run Code Online (Sandbox Code Playgroud)

  • 我认为“SetTransparency”不是一个明确的名称。它不会改变现有颜色的属性,而是创建并返回一种新颜色。 (2认同)