Définir les valeurs System.Drawing.Color

Salut comment définir les valeurs RGB dans System.Drawing.Color.G ?

qui est comme System.Drawing.Color.G=255; n’est pas autorisé car sa lecture seule

 Property or indexer 'System.Drawing.Color.G' cannot be assigned toit is read only 

je dois juste créer un object de Color en assignant des valeurs RGB personnalisées

    Vous pouvez créer une couleur en utilisant la méthode statique FromArgb :

     Color redColor = Color.FromArgb(255, 0, 0); 

    Vous pouvez également spécifier l’alpha en utilisant la surcharge suivante .

    La structure Color est immuable (comme toutes les structures doivent l’être), ce qui signifie que les valeurs de ses propriétés ne peuvent pas être modifiées une fois que cette instance particulière a été créée.

    Au lieu de cela, vous devez créer une nouvelle instance de la structure avec les valeurs de propriété souhaitées. Puisque vous voulez créer une couleur en utilisant ses valeurs RVB de composant, vous devez utiliser la méthode FromArgb :

     Color myColor = Color.FromArgb(100, 150, 75); 

    Vous devez utiliser la méthode Color.FromArgb pour créer une nouvelle structure de couleur

     var newColor = Color.FromArgb(0xCC,0xBB,0xAA); 

    Vous pouvez faire une extension pour changer un composant de couleur

     static class ColorExtension { public static Color ChangeG(Color this color,byte g) { return Color.FromArgb(color.A,color.R,g,color.B); } } 

    alors vous pouvez utiliser ceci:

      yourColor = yourColor.ChangeG(100); 

    Vous pourriez faire:

     Color c = Color.FromArgb(red, green, blue); //red, green and blue are integer variables containing red, green and blue components 
     using System; using System.Drawing; public struct MyColor { private byte a, r, g, b; public byte A { get { return this.a; } } public byte R { get { return this.r; } } public byte G { get { return this.g; } } public byte B { get { return this.b; } } public MyColor SetAlpha(byte value) { this.a = value; return this; } public MyColor SetRed(byte value) { this.r = value; return this; } public MyColor SetGreen(byte value) { this.g = value; return this; } public MyColor SetBlue(byte value) { this.b = value; return this; } public int ToArgb() { return (int)(A << 24) || (int)(R << 16) || (int)(G << 8) || (int)(B); } public override string ToString () { return string.Format ("[MyColor: A={0}, R={1}, G={2}, B={3}]", A, R, G, B); } public static MyColor FromArgb(byte alpha, byte red, byte green, byte blue) { return new MyColor().SetAlpha(alpha).SetRed(red).SetGreen(green).SetBlue(blue); } public static MyColor FromArgb(byte red, byte green, byte blue) { return MyColor.FromArgb(255, red, green, blue); } public static MyColor FromArgb(byte alpha, MyColor baseColor) { return MyColor.FromArgb(alpha, baseColor.R, baseColor.G, baseColor.B); } public static MyColor FromArgb(int argb) { return MyColor.FromArgb(argb & 255, (argb >> 8) & 255, (argb >> 16) & 255, (argb >> 24) & 255); } public static implicit operator Color(MyColor myColor) { return Color.FromArgb(myColor.ToArgb()); } public static implicit operator MyColor(Color color) { return MyColor.FromArgb(color.ToArgb()); } }