Alpha blending colors in .NET Compact Framwork 2.0

Posted by Adam Haile on Stack Overflow See other posts from Stack Overflow or by Adam Haile
Published on 2008-08-18T12:17:16Z Indexed on 2010/05/20 0:40 UTC
Read the original article Hit count: 293

Filed under:
|
|
|

In the Full .NET framework you can use the Color.FromArgb() method to create a new color with alpha blending, like this:

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

or

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

However in the Compact Framework (2.0 specifically), neither of those prototypes are valid, you only get:

Color.FromArgb(int red, int green, int blue);

and

Color.FromArgb(int val);

The first one, obviously, doesn't even let you enter an alpha value, but the documentation for the latter shows that "val" is a 32bit ARGB value (as 0xAARRGGBB as opposed to the standard 24bit 0xRRGGBB), so it would make sense that you could just build the ARGB value and pass it to the function. I tried this with the following:

private Color FromARGB(byte alpha, byte red, byte green, byte blue)
{
    int val = (alpha << 24) | (red << 16) | (green << 8) | blue;
    return Color.FromArgb(val);
}

But no matter what I do, the alpha blending never works, the resulting color always as full opacity, even when setting the alpha value to 0.

Has anyone gotten this to work on Compact Framework?

© Stack Overflow or respective owner

Related posts about c#

Related posts about .NET