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