在全.NET框架可以使用Color.FromArgb()方法来创建新的颜色与α混合,像这样:Alpha混合颜色在.NET Framework精简2.0
Color blended = Color.FromArgb(alpha, color);
或
Color blended = Color.FromArgb(alpha, red, green , blue);
但是在紧凑型框架(特别是2.0),无论这些方法都可以,你只能得到:
Color.FromArgb(int red, int green, int blue);
和
Color.FromArgb(int val);
第一个,很明显,甚至没有让你输入一个Alpha值,但后者显示的文件是“VAL”为32位ARGB值(0xAARRGGBB而不是标准24位0xRRGGBB),因此您可以创建ARGB值并将其传递给函数。我想这与以下:
private Color FromARGB(byte alpha, byte red, byte green, byte blue)
{
int val = (alpha << 24) | (red << 16) | (green << 8) | blue;
return Color.FromArgb(val);
}
但无论我做什么,alpha混合永远不会奏效,所产生的颜色总是以完全不透明,阿尔法值设置为0
即使有没有人得到这个在Compact Framework上工作?
CE 6.0 *确实*支持alpha混合。可能是您的特定操作系统版本不支持,但支持在操作系统中,并且可以包含在操作系统映像中。 – ctacke 2012-06-19 02:35:13