Color::FromArgb Method (Int32, Color)
Creates a Color structure from the specified Color structure, but with the new specified alpha value. Although this method allows a 32-bit value to be passed for the alpha value, the value is limited to 8 bits.
Assembly: System.Drawing (in System.Drawing.dll)
Parameters
- alpha
-
Type:
System::Int32
The alpha value for the new Color. Valid values are 0 through 255.
- baseColor
- Type: System.Drawing::Color
| Exception | Condition |
|---|---|
| ArgumentException | alpha is less than 0 or greater than 255. |
To create an opaque color, set alpha to 255. To create a semitransparent color, set alpha to any value from 1 through 254.
The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler. The code performs the following actions:
Creates Color structures from the three color component values (red, green, blue). Three Color structures are created, one for each primary color.
Iterates through a range of alpha values, changing the alpha value of a color.
During each iteration, sets the color of a brush to the modified color and paints a rectangle to show the color.
Repeats steps 2 and 3 for each primary color.
The alpha value is never fully opaque and the rectangles overlap so you get color-combination effects.
void FromArgb3( PaintEventArgs^ e ) { Graphics^ g = e->Graphics; // Opaque colors (alpha value defaults to 255 -- max value). Color red = Color::FromArgb( 255, 0, 0 ); Color green = Color::FromArgb( 0, 255, 0 ); Color blue = Color::FromArgb( 0, 0, 255 ); // Solid brush initialized to red. SolidBrush^ myBrush = gcnew SolidBrush( red ); int alpha; // x coordinate of first red rectangle int x = 50; // y coordinate of first red rectangle int y = 50; // Fill rectangles with red, varying the alpha value from 25 to 250. for ( alpha = 25; alpha <= 250; alpha += 25 ) { myBrush->Color = Color::FromArgb( alpha, red ); g->FillRectangle( myBrush, x, y, 50, 100 ); g->FillRectangle( myBrush, x, y + 250, 50, 50 ); x += 50; } x = 50; // y coordinate of first green rectangle y += 50; // Fill rectangles with green, varying the alpha value from 25 to 250. for ( alpha = 25; alpha <= 250; alpha += 25 ) { myBrush->Color = Color::FromArgb( alpha, green ); g->FillRectangle( myBrush, x, y, 50, 150 ); x += 50; } x = 50; // y coordinate of first blue rectangle y += 100; // Fill rectangles with blue, varying the alpha value from 25 to 250. for ( alpha = 25; alpha <= 250; alpha += 25 ) { myBrush->Color = Color::FromArgb( alpha, blue ); g->FillRectangle( myBrush, x, y, 50, 150 ); x += 50; } }
Available since 1.1