Alpha Compact Framework 2.0中的Alpha混合颜色

在Full .NET框架中,您可以使用Color.FromArgb()方法创建一个带有alpha混合的新颜色,如下所示:

Color blended = Color.FromArgb(alpha, color);

要么

Color blended = Color.FromArgb(alpha, red, green , blue);

但是在Compact Framework(特别是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混合都不会起作用,即使将alpha值设置为0,最终的颜色也始终为完全不透明度。

有没有人得到这个在Compact Framework上工作?


显然,它不是那么简单,但仍然可能,如果你有Windows Mobile 5.0或更新版本。


显然,它不是那么简单,但仍然可能,如果你有Windows Mobile 5.0或更新版本。

哇...绝对不值得它,如果我必须把所有的代码(并做本地互操作!)虽然好知道,谢谢你的链接。


在那里有一个codeplex站点,似乎为你做了繁重的com互操作:

链接地址: http://www.djcxy.com/p/53689.html

上一篇: Alpha blending colors in .NET Compact Framework 2.0

下一篇: How to scroll a panel manually?