c# - 设置透明色

标签 c# colors

我有一个 Color,我有一个方法应该返回该颜色的更“透明”版本。我尝试了以下方法:

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

但出于某种原因,无论 A 是什么,返回的 Color 的透明度级别都不会改变。

有什么想法吗?

最佳答案

嗯,我觉得没问题,只是你使用的是 Color.R(等)而不是 color.R - 你确定你真的使用返回的 Color 而不是假设它会改变现有的颜色?您如何确定“透明度级别”不会改变?

这是一个示例,显示返回颜色中的 alpha 值是真正正确的:

using System;
using System.Drawing;

class Test
{
    static Color SetTransparency(int A, Color color)
    {
        return Color.FromArgb(A, color.R, color.G, color.B);
    }
    
    static void Main()
    {
        Color halfTransparent = SetTransparency(127, Colors.Black);
        Console.WriteLine(halfTransparent.A); // Prints 127
    }
}

没有惊喜。如果您提供一个简短但完整的程序来演示您遇到的确切问题,那将非常有帮助。您确定无论您对颜色做什么都支持透明度吗?

请注意,此方法实际上已经存在为 Color.FromArgb(int, Color) .

关于c# - 设置透明色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3020877/

相关文章:

javascript - jQuery UI switchClass 在 IE8 下失败

algorithm - RGB 相似色近似算法

时间:2019-03-17 标签:c#remoteevents

c# - 在 C# 中比较 RGB 颜色

c# - 从netcore C#控制台应用程序调用rust dll时发生System.BadImageFormatException

c++ - 如何在使用 OpenCV 遍历像素时添加 2 个 Mat 像素值?

java - JList 其中每一行可能需要有不同的字体颜色

c# - 创建帐户状态为 "CONFIRMED"且没有电子邮件地址的 AWS Cognito 用户

c# - 是否有一种方法可以在 Visual Studio 中交换一组表达式的左右两侧?

c++ - 如何计算二维对数色度?