在全.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