2 // System.Drawing.Color.cs
5 // Dennis Hayes (dennish@raytek.com)
6 // Ben Houston (ben@exocortex.org)
7 // Gonzalo Paniagua (gonzalo@ximian.com)
8 // Juraj Skripsky (juraj@hotfeet.ch)
10 // (C) 2002 Dennis Hayes
11 // (c) 2002 Ximian, Inc. (http://www.ximiam.com)
12 // (C) 2005 HotFeet GmbH (http://www.hotfeet.ch)
14 // TODO: Are the static/non static functions declared correctly
17 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
19 // Permission is hereby granted, free of charge, to any person obtaining
20 // a copy of this software and associated documentation files (the
21 // "Software"), to deal in the Software without restriction, including
22 // without limitation the rights to use, copy, modify, merge, publish,
23 // distribute, sublicense, and/or sell copies of the Software, and to
24 // permit persons to whom the Software is furnished to do so, subject to
25 // the following conditions:
27 // The above copyright notice and this permission notice shall be
28 // included in all copies or substantial portions of the Software.
30 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
31 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
32 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
33 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
34 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
35 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
36 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
40 using System.Collections;
41 using System.Runtime.InteropServices;
42 using System.ComponentModel;
43 using System.Reflection;
45 namespace System.Drawing
47 [TypeConverter(typeof(ColorConverter))]
49 [Editor ("System.Drawing.Design.ColorEditor, " + Consts.AssemblySystem_Drawing_Design, typeof (System.Drawing.Design.UITypeEditor))]
53 private static Hashtable namedColors;
54 private static Hashtable systemColors;
55 static Color [] knownColors;
57 // Private transparancy (A) and R,G,B fields.
62 private static string creatingColorNames = "creatingColorNames";
64 // The specs also indicate that all three of these propities are true
65 // if created with FromKnownColor or FromNamedColor, false otherwise (FromARGB).
66 // Per Microsoft and ECMA specs these varibles are set by which constructor is used, not by their values.
67 private bool isknowncolor;
68 private bool isnamedcolor;
69 private bool issystemcolor;
70 private KnownColor knownColor;
72 private string myname;
76 if (myname == null || myname == String.Empty)
77 return String.Format ("{0:x}", ToArgb ());
82 public bool IsKnownColor {
88 public bool IsSystemColor {
94 public bool IsNamedColor {
103 public static Color FromArgb (int red, int green, int blue)
105 return FromArgb (255, red, green, blue);
108 public static Color FromArgb (int alpha, int red, int green, int blue)
110 CheckARGBValues (alpha, red, green, blue);
111 Color color = new Color ();
112 color.a = (byte) alpha;
113 color.r = (byte) red;
114 color.g = (byte) green;
115 color.b = (byte) blue;
116 color.myname = String.Empty;
120 private static Color FromArgbNamed (int alpha, int red, int green, int blue, string name, KnownColor knownColor)
122 Color color = FromArgb (alpha, red, green, blue);
123 color.isknowncolor = true;
124 color.isnamedcolor = true;
125 //color.issystemcolor = false; //???
127 // FIXME: here happens SEGFAULT.
128 //color.knownColor = (KnownColor) Enum.Parse (typeof (KnownColor), name, false);
129 color.knownColor = knownColor;
133 internal static Color FromArgbSystem (int alpha, int red, int green, int blue, string name, KnownColor knownColor)
135 Color color = FromArgbNamed (alpha, red, green, blue, name, knownColor);
136 color.issystemcolor = true;
142 return a << 24 | r << 16 | g << 8 | b;
145 public static Color FromArgb (int alpha, Color baseColor)
147 return FromArgb (alpha, baseColor.r, baseColor.g, baseColor.b);
150 public static Color FromArgb (int argb)
152 return FromArgb ((argb >> 24) & 0x0FF, (argb >> 16) & 0x0FF, (argb >> 8) & 0x0FF, argb & 0x0FF);
155 public static Color FromKnownColor (KnownColor c)
157 if (knownColors == null)
160 if (c < KnownColor.ActiveBorder || c > KnownColor.YellowGreen) {
161 // This is what it returns!
162 Color d = FromArgb (0, 0, 0, 0);
163 d.myname = c.ToString ();
164 d.isnamedcolor = true;
169 return knownColors [(int) c];
172 private static Hashtable GetColorHashtableFromType (Type type)
174 Hashtable colorHash = new Hashtable (CaseInsensitiveHashCodeProvider.Default,
175 CaseInsensitiveComparer.Default);
177 PropertyInfo [] props = type.GetProperties ();
178 foreach (PropertyInfo prop in props){
179 if (prop.PropertyType != typeof (Color))
182 MethodInfo getget = prop.GetGetMethod ();
183 if (getget == null || getget.IsStatic == false)
186 object o = prop.GetValue (null, null);
187 colorHash.Add (prop.Name, o);
190 knownColors [(int) c.knownColor] = c;
195 private static void FillColorNames ()
197 if (systemColors != null)
200 lock (creatingColorNames) {
201 if (systemColors != null)
204 knownColors = new Color [(int)KnownColor.YellowGreen + 1];
206 Hashtable colorHash = GetColorHashtableFromType (typeof (Color));
207 namedColors = colorHash;
209 colorHash = GetColorHashtableFromType (typeof (SystemColors));
210 systemColors = colorHash;
214 public static Color FromName (string colorName)
216 object c = NamedColors [colorName];
218 c = SystemColors [colorName];
220 // This is what it returns!
221 Color d = FromArgb (0, 0, 0, 0);
222 d.myname = colorName;
223 d.isnamedcolor = true;
231 internal static Hashtable NamedColors
239 internal static Hashtable SystemColors
247 // -----------------------
248 // Public Shared Members
249 // -----------------------
252 /// Empty Shared Field
256 /// An uninitialized Color Structure
259 public static readonly Color Empty;
262 /// Equality Operator
266 /// Compares two Color objects. The return value is
267 /// based on the equivalence of the A,R,G,B properties
268 /// of the two Colors.
271 public static bool operator == (Color colorA, Color colorB)
273 return ((colorA.a == colorB.a) && (colorA.r == colorB.r)
274 && (colorA.g == colorB.g) && (colorA.b == colorB.b) &&
275 (colorA.myname == colorB.myname));
279 /// Inequality Operator
283 /// Compares two Color objects. The return value is
284 /// based on the equivalence of the A,R,G,B properties
285 /// of the two colors.
288 public static bool operator != (Color colorA, Color colorB)
290 return ((colorA.a != colorB.a) || (colorA.r != colorB.r)
291 || (colorA.g != colorB.g) || (colorA.b != colorB.b) ||
292 (colorA.myname != colorB.myname));
295 public float GetBrightness ()
297 byte minval = Math.Min (r, Math.Min (g, b));
\r
298 byte maxval = Math.Max (r, Math.Max (g, b));
\r
300 return (float)(maxval + minval) / 510;
\r
303 public float GetSaturation ()
305 byte minval = Math.Min (r, Math.Min (g, b));
\r
306 byte maxval = Math.Max (r, Math.Max (g, b));
308 if (maxval == minval)
\r
311 int sum = maxval + minval;
315 return (float)(maxval - minval) / sum;
318 public float GetHue ()
320 byte minval = Math.Min (r, Math.Min (g, b));
\r
321 byte maxval = Math.Max (r, Math.Max (g, b));
323 if (maxval == minval)
\r
326 float diff = (float)(maxval - minval);
327 float rnorm = (maxval - r) / diff;
\r
328 float gnorm = (maxval - g) / diff;
\r
329 float bnorm = (maxval - b) / diff;
\r
333 hue = 60.0f * (6.0f + bnorm - gnorm);
\r
335 hue = 60.0f * (2.0f + rnorm - bnorm);
\r
337 hue = 60.0f * (4.0f + gnorm - rnorm);
\r
344 // -----------------------
345 // Public Instance Members
346 // -----------------------
349 /// ToKnownColor method
353 /// Returns the KnownColor enum value for this color, 0 if is not known.
355 public KnownColor ToKnownColor ()
365 /// Indicates transparent black. R,G,B = 0; A=0?
371 return (a + r + g + b) == 0;
380 /// The transparancy of the Color.
395 /// The red value of the Color.
410 /// The green value of the Color.
425 /// The blue value of the Color.
440 /// Checks equivalence of this Color and another object.
443 public override bool Equals (object o)
449 if (c.r == r && c.g == g && c.b == b) {
450 if (myname != null || c.myname != null)
451 return (myname == c.myname);
458 /// Reference Equals Method
459 /// Is commented out because this is handled by the base class.
460 /// TODO: Is it correct to let the base class handel reference equals
464 /// Checks equivalence of this Color and another object.
466 //public bool ReferenceEquals (object o)
468 // if (!(o is Color))return false;
469 // return (this == (Color) o);
475 /// GetHashCode Method
479 /// Calculates a hashing value.
482 public override int GetHashCode ()
484 return ToArgb().GetHashCode();
492 /// Formats the Color as a string in ARGB notation.
495 public override string ToString ()
498 return "Color [" + myname + "]";
500 return String.Format ("Color [A={0}, R={1}, G={2}, B={3}]", a, r, g, b);
503 private static void CheckRGBValues (int red,int green,int blue)
505 if( (red > 255) || (red < 0))
506 throw new System.ArgumentOutOfRangeException
507 ("red",red,"Value must be in the range 0 - 255");
508 if( (green > 255) || (green < 0))
509 throw new System.ArgumentOutOfRangeException
510 ("green",green,"Value must be in the range 0 - 255");
511 if( (blue > 255) || (blue < 0))
512 throw new System.ArgumentOutOfRangeException
513 ("blue",blue,"Value must be in the range 0 - 255");
516 private static void CheckARGBValues (int alpha,int red,int green,int blue)
518 if( (alpha > 255) || (alpha < 0))
519 throw new System.ArgumentOutOfRangeException
520 ("alpha",alpha,"Value must be in the range 0 - 255");
521 CheckRGBValues(red,green,blue);
524 //Documentation, do not remove!
525 //This is the program that was used to generate the C# source code below.
527 //using System.Diagnostics;
528 //using System.Drawing;
529 //using System.Reflection;
531 //static void Main(string[] args)
533 // Type cType = typeof (Color);
534 // PropertyInfo [] properties = cType.GetProperties ();
535 // foreach (PropertyInfo property in properties) {
536 // MethodInfo method = property.GetGetMethod();
537 // if (method != null && method.IsStatic && method.ReturnType == cType) {
538 // Color c = (Color) method.Invoke( null, new object[0] );
539 // Console.WriteLine("static public Color " + property.Name);
540 // Console.WriteLine("{\t\n\tget {");
541 // Console.WriteLine("\t\treturn Color.FromArgbNamed ({0}, {1}, {2}, {3}, \"{4}\", KnownColor.{4});",
542 // c.A, c.R, c.G, c.B, property.Name);
543 // Console.WriteLine("\t}");
544 // Console.WriteLine("}\n");
550 static public Color Transparent
553 return Color.FromArgbNamed (0, 255, 255, 255, "Transparent", KnownColor.Transparent);
557 static public Color AliceBlue
560 return Color.FromArgbNamed (255, 240, 248, 255, "AliceBlue", KnownColor.AliceBlue);
564 static public Color AntiqueWhite
567 return Color.FromArgbNamed (255, 250, 235, 215, "AntiqueWhite", KnownColor.AntiqueWhite);
571 static public Color Aqua
574 return Color.FromArgbNamed (255, 0, 255, 255, "Aqua", KnownColor.Aqua);
578 static public Color Aquamarine
581 return Color.FromArgbNamed (255, 127, 255, 212, "Aquamarine", KnownColor.Aquamarine);
585 static public Color Azure
588 return Color.FromArgbNamed (255, 240, 255, 255, "Azure", KnownColor.Azure);
592 static public Color Beige
595 return Color.FromArgbNamed (255, 245, 245, 220, "Beige", KnownColor.Beige);
599 static public Color Bisque
602 return Color.FromArgbNamed (255, 255, 228, 196, "Bisque", KnownColor.Bisque);
606 static public Color Black
609 return Color.FromArgbNamed (255, 0, 0, 0, "Black", KnownColor.Black);
613 static public Color BlanchedAlmond
616 return Color.FromArgbNamed (255, 255, 235, 205, "BlanchedAlmond", KnownColor.BlanchedAlmond);
620 static public Color Blue
623 return Color.FromArgbNamed (255, 0, 0, 255, "Blue", KnownColor.Blue);
627 static public Color BlueViolet
630 return Color.FromArgbNamed (255, 138, 43, 226, "BlueViolet", KnownColor.BlueViolet);
634 static public Color Brown
637 return Color.FromArgbNamed (255, 165, 42, 42, "Brown", KnownColor.Brown);
641 static public Color BurlyWood
644 return Color.FromArgbNamed (255, 222, 184, 135, "BurlyWood", KnownColor.BurlyWood);
648 static public Color CadetBlue
651 return Color.FromArgbNamed (255, 95, 158, 160, "CadetBlue", KnownColor.CadetBlue);
655 static public Color Chartreuse
658 return Color.FromArgbNamed (255, 127, 255, 0, "Chartreuse", KnownColor.Chartreuse);
662 static public Color Chocolate
665 return Color.FromArgbNamed (255, 210, 105, 30, "Chocolate", KnownColor.Chocolate);
669 static public Color Coral
672 return Color.FromArgbNamed (255, 255, 127, 80, "Coral", KnownColor.Coral);
676 static public Color CornflowerBlue
679 return Color.FromArgbNamed (255, 100, 149, 237, "CornflowerBlue", KnownColor.CornflowerBlue);
683 static public Color Cornsilk
686 return Color.FromArgbNamed (255, 255, 248, 220, "Cornsilk", KnownColor.Cornsilk);
690 static public Color Crimson
693 return Color.FromArgbNamed (255, 220, 20, 60, "Crimson", KnownColor.Crimson);
697 static public Color Cyan
700 return Color.FromArgbNamed (255, 0, 255, 255, "Cyan", KnownColor.Cyan);
704 static public Color DarkBlue
707 return Color.FromArgbNamed (255, 0, 0, 139, "DarkBlue", KnownColor.DarkBlue);
711 static public Color DarkCyan
714 return Color.FromArgbNamed (255, 0, 139, 139, "DarkCyan", KnownColor.DarkCyan);
718 static public Color DarkGoldenrod
721 return Color.FromArgbNamed (255, 184, 134, 11, "DarkGoldenrod", KnownColor.DarkGoldenrod);
725 static public Color DarkGray
728 return Color.FromArgbNamed (255, 169, 169, 169, "DarkGray", KnownColor.DarkGray);
732 static public Color DarkGreen
735 return Color.FromArgbNamed (255, 0, 100, 0, "DarkGreen", KnownColor.DarkGreen);
739 static public Color DarkKhaki
742 return Color.FromArgbNamed (255, 189, 183, 107, "DarkKhaki", KnownColor.DarkKhaki);
746 static public Color DarkMagenta
749 return Color.FromArgbNamed (255, 139, 0, 139, "DarkMagenta", KnownColor.DarkMagenta);
753 static public Color DarkOliveGreen
756 return Color.FromArgbNamed (255, 85, 107, 47, "DarkOliveGreen", KnownColor.DarkOliveGreen);
760 static public Color DarkOrange
763 return Color.FromArgbNamed (255, 255, 140, 0, "DarkOrange", KnownColor.DarkOrange);
767 static public Color DarkOrchid
770 return Color.FromArgbNamed (255, 153, 50, 204, "DarkOrchid", KnownColor.DarkOrchid);
774 static public Color DarkRed
777 return Color.FromArgbNamed (255, 139, 0, 0, "DarkRed", KnownColor.DarkRed);
781 static public Color DarkSalmon
784 return Color.FromArgbNamed (255, 233, 150, 122, "DarkSalmon", KnownColor.DarkSalmon);
788 static public Color DarkSeaGreen
791 return Color.FromArgbNamed (255, 143, 188, 139, "DarkSeaGreen", KnownColor.DarkSeaGreen);
795 static public Color DarkSlateBlue
798 return Color.FromArgbNamed (255, 72, 61, 139, "DarkSlateBlue", KnownColor.DarkSlateBlue);
802 static public Color DarkSlateGray
805 return Color.FromArgbNamed (255, 47, 79, 79, "DarkSlateGray", KnownColor.DarkSlateGray);
809 static public Color DarkTurquoise
812 return Color.FromArgbNamed (255, 0, 206, 209, "DarkTurquoise", KnownColor.DarkTurquoise);
816 static public Color DarkViolet
819 return Color.FromArgbNamed (255, 148, 0, 211, "DarkViolet", KnownColor.DarkViolet);
823 static public Color DeepPink
826 return Color.FromArgbNamed (255, 255, 20, 147, "DeepPink", KnownColor.DeepPink);
830 static public Color DeepSkyBlue
833 return Color.FromArgbNamed (255, 0, 191, 255, "DeepSkyBlue", KnownColor.DeepSkyBlue);
837 static public Color DimGray
840 return Color.FromArgbNamed (255, 105, 105, 105, "DimGray", KnownColor.DimGray);
844 static public Color DodgerBlue
847 return Color.FromArgbNamed (255, 30, 144, 255, "DodgerBlue", KnownColor.DodgerBlue);
851 static public Color Firebrick
854 return Color.FromArgbNamed (255, 178, 34, 34, "Firebrick", KnownColor.Firebrick);
858 static public Color FloralWhite
861 return Color.FromArgbNamed (255, 255, 250, 240, "FloralWhite", KnownColor.FloralWhite);
865 static public Color ForestGreen
868 return Color.FromArgbNamed (255, 34, 139, 34, "ForestGreen", KnownColor.ForestGreen);
872 static public Color Fuchsia
875 return Color.FromArgbNamed (255, 255, 0, 255, "Fuchsia", KnownColor.Fuchsia);
879 static public Color Gainsboro
882 return Color.FromArgbNamed (255, 220, 220, 220, "Gainsboro", KnownColor.Gainsboro);
886 static public Color GhostWhite
889 return Color.FromArgbNamed (255, 248, 248, 255, "GhostWhite", KnownColor.GhostWhite);
893 static public Color Gold
896 return Color.FromArgbNamed (255, 255, 215, 0, "Gold", KnownColor.Gold);
900 static public Color Goldenrod
903 return Color.FromArgbNamed (255, 218, 165, 32, "Goldenrod", KnownColor.Goldenrod);
907 static public Color Gray
910 return Color.FromArgbNamed (255, 128, 128, 128, "Gray", KnownColor.Gray);
914 static public Color Green
917 // LAMESPEC: MS uses A=255, R=0, G=128, B=0 for Green Color,
918 // which is seems to be wrong. G must be 255.
919 return Color.FromArgbNamed (255, 0, 128, 0, "Green", KnownColor.Green);
923 static public Color GreenYellow
926 return Color.FromArgbNamed (255, 173, 255, 47, "GreenYellow", KnownColor.GreenYellow);
930 static public Color Honeydew
933 return Color.FromArgbNamed (255, 240, 255, 240, "Honeydew", KnownColor.Honeydew);
937 static public Color HotPink
940 return Color.FromArgbNamed (255, 255, 105, 180, "HotPink", KnownColor.HotPink);
944 static public Color IndianRed
947 return Color.FromArgbNamed (255, 205, 92, 92, "IndianRed", KnownColor.IndianRed);
951 static public Color Indigo
954 return Color.FromArgbNamed (255, 75, 0, 130, "Indigo", KnownColor.Indigo);
958 static public Color Ivory
961 return Color.FromArgbNamed (255, 255, 255, 240, "Ivory", KnownColor.Ivory);
965 static public Color Khaki
968 return Color.FromArgbNamed (255, 240, 230, 140, "Khaki", KnownColor.Khaki);
972 static public Color Lavender
975 return Color.FromArgbNamed (255, 230, 230, 250, "Lavender", KnownColor.Lavender);
979 static public Color LavenderBlush
982 return Color.FromArgbNamed (255, 255, 240, 245, "LavenderBlush", KnownColor.LavenderBlush);
986 static public Color LawnGreen
989 return Color.FromArgbNamed (255, 124, 252, 0, "LawnGreen", KnownColor.LawnGreen);
993 static public Color LemonChiffon
996 return Color.FromArgbNamed (255, 255, 250, 205, "LemonChiffon", KnownColor.LemonChiffon);
1000 static public Color LightBlue
1003 return Color.FromArgbNamed (255, 173, 216, 230, "LightBlue", KnownColor.LightBlue);
1007 static public Color LightCoral
1010 return Color.FromArgbNamed (255, 240, 128, 128, "LightCoral", KnownColor.LightCoral);
1014 static public Color LightCyan
1017 return Color.FromArgbNamed (255, 224, 255, 255, "LightCyan", KnownColor.LightCyan);
1021 static public Color LightGoldenrodYellow
1024 return Color.FromArgbNamed (255, 250, 250, 210, "LightGoldenrodYellow", KnownColor.LightGoldenrodYellow);
1028 static public Color LightGreen
1031 return Color.FromArgbNamed (255, 144, 238, 144, "LightGreen", KnownColor.LightGreen);
1035 static public Color LightGray
1038 return Color.FromArgbNamed (255, 211, 211, 211, "LightGray", KnownColor.LightGray);
1042 static public Color LightPink
1045 return Color.FromArgbNamed (255, 255, 182, 193, "LightPink", KnownColor.LightPink);
1049 static public Color LightSalmon
1052 return Color.FromArgbNamed (255, 255, 160, 122, "LightSalmon", KnownColor.LightSalmon);
1056 static public Color LightSeaGreen
1059 return Color.FromArgbNamed (255, 32, 178, 170, "LightSeaGreen", KnownColor.LightSeaGreen);
1063 static public Color LightSkyBlue
1066 return Color.FromArgbNamed (255, 135, 206, 250, "LightSkyBlue", KnownColor.LightSkyBlue);
1070 static public Color LightSlateGray
1073 return Color.FromArgbNamed (255, 119, 136, 153, "LightSlateGray", KnownColor.LightSlateGray);
1077 static public Color LightSteelBlue
1080 return Color.FromArgbNamed (255, 176, 196, 222, "LightSteelBlue", KnownColor.LightSteelBlue);
1084 static public Color LightYellow
1087 return Color.FromArgbNamed (255, 255, 255, 224, "LightYellow", KnownColor.LightYellow);
1091 static public Color Lime
1094 return Color.FromArgbNamed (255, 0, 255, 0, "Lime", KnownColor.Lime);
1098 static public Color LimeGreen
1101 return Color.FromArgbNamed (255, 50, 205, 50, "LimeGreen", KnownColor.LimeGreen);
1105 static public Color Linen
1108 return Color.FromArgbNamed (255, 250, 240, 230, "Linen", KnownColor.Linen);
1112 static public Color Magenta
1115 return Color.FromArgbNamed (255, 255, 0, 255, "Magenta", KnownColor.Magenta);
1119 static public Color Maroon
1122 return Color.FromArgbNamed (255, 128, 0, 0, "Maroon", KnownColor.Maroon);
1126 static public Color MediumAquamarine
1129 return Color.FromArgbNamed (255, 102, 205, 170, "MediumAquamarine", KnownColor.MediumAquamarine);
1133 static public Color MediumBlue
1136 return Color.FromArgbNamed (255, 0, 0, 205, "MediumBlue", KnownColor.MediumBlue);
1140 static public Color MediumOrchid
1143 return Color.FromArgbNamed (255, 186, 85, 211, "MediumOrchid", KnownColor.MediumOrchid);
1147 static public Color MediumPurple
1150 return Color.FromArgbNamed (255, 147, 112, 219, "MediumPurple", KnownColor.MediumPurple);
1154 static public Color MediumSeaGreen
1157 return Color.FromArgbNamed (255, 60, 179, 113, "MediumSeaGreen", KnownColor.MediumSeaGreen);
1161 static public Color MediumSlateBlue
1164 return Color.FromArgbNamed (255, 123, 104, 238, "MediumSlateBlue", KnownColor.MediumSlateBlue);
1168 static public Color MediumSpringGreen
1171 return Color.FromArgbNamed (255, 0, 250, 154, "MediumSpringGreen", KnownColor.MediumSpringGreen);
1175 static public Color MediumTurquoise
1178 return Color.FromArgbNamed (255, 72, 209, 204, "MediumTurquoise", KnownColor.MediumTurquoise);
1182 static public Color MediumVioletRed
1185 return Color.FromArgbNamed (255, 199, 21, 133, "MediumVioletRed", KnownColor.MediumVioletRed);
1189 static public Color MidnightBlue
1192 return Color.FromArgbNamed (255, 25, 25, 112, "MidnightBlue", KnownColor.MidnightBlue);
1196 static public Color MintCream
1199 return Color.FromArgbNamed (255, 245, 255, 250, "MintCream", KnownColor.MintCream);
1203 static public Color MistyRose
1206 return Color.FromArgbNamed (255, 255, 228, 225, "MistyRose", KnownColor.MistyRose);
1210 static public Color Moccasin
1213 return Color.FromArgbNamed (255, 255, 228, 181, "Moccasin", KnownColor.Moccasin);
1217 static public Color NavajoWhite
1220 return Color.FromArgbNamed (255, 255, 222, 173, "NavajoWhite", KnownColor.NavajoWhite);
1224 static public Color Navy
1227 return Color.FromArgbNamed (255, 0, 0, 128, "Navy", KnownColor.Navy);
1231 static public Color OldLace
1234 return Color.FromArgbNamed (255, 253, 245, 230, "OldLace", KnownColor.OldLace);
1238 static public Color Olive
1241 return Color.FromArgbNamed (255, 128, 128, 0, "Olive", KnownColor.Olive);
1245 static public Color OliveDrab
1248 return Color.FromArgbNamed (255, 107, 142, 35, "OliveDrab", KnownColor.OliveDrab);
1252 static public Color Orange
1255 return Color.FromArgbNamed (255, 255, 165, 0, "Orange", KnownColor.Orange);
1259 static public Color OrangeRed
1262 return Color.FromArgbNamed (255, 255, 69, 0, "OrangeRed", KnownColor.OrangeRed);
1266 static public Color Orchid
1269 return Color.FromArgbNamed (255, 218, 112, 214, "Orchid", KnownColor.Orchid);
1273 static public Color PaleGoldenrod
1276 return Color.FromArgbNamed (255, 238, 232, 170, "PaleGoldenrod", KnownColor.PaleGoldenrod);
1280 static public Color PaleGreen
1283 return Color.FromArgbNamed (255, 152, 251, 152, "PaleGreen", KnownColor.PaleGreen);
1287 static public Color PaleTurquoise
1290 return Color.FromArgbNamed (255, 175, 238, 238, "PaleTurquoise", KnownColor.PaleTurquoise);
1294 static public Color PaleVioletRed
1297 return Color.FromArgbNamed (255, 219, 112, 147, "PaleVioletRed", KnownColor.PaleVioletRed);
1301 static public Color PapayaWhip
1304 return Color.FromArgbNamed (255, 255, 239, 213, "PapayaWhip", KnownColor.PapayaWhip);
1308 static public Color PeachPuff
1311 return Color.FromArgbNamed (255, 255, 218, 185, "PeachPuff", KnownColor.PeachPuff);
1315 static public Color Peru
1318 return Color.FromArgbNamed (255, 205, 133, 63, "Peru", KnownColor.Peru);
1322 static public Color Pink
1325 return Color.FromArgbNamed (255, 255, 192, 203, "Pink", KnownColor.Pink);
1329 static public Color Plum
1332 return Color.FromArgbNamed (255, 221, 160, 221, "Plum", KnownColor.Plum);
1336 static public Color PowderBlue
1339 return Color.FromArgbNamed (255, 176, 224, 230, "PowderBlue", KnownColor.PowderBlue);
1343 static public Color Purple
1346 return Color.FromArgbNamed (255, 128, 0, 128, "Purple", KnownColor.Purple);
1350 static public Color Red
1353 return Color.FromArgbNamed (255, 255, 0, 0, "Red", KnownColor.Red);
1357 static public Color RosyBrown
1360 return Color.FromArgbNamed (255, 188, 143, 143, "RosyBrown", KnownColor.RosyBrown);
1364 static public Color RoyalBlue
1367 return Color.FromArgbNamed (255, 65, 105, 225, "RoyalBlue", KnownColor.RoyalBlue);
1371 static public Color SaddleBrown
1374 return Color.FromArgbNamed (255, 139, 69, 19, "SaddleBrown", KnownColor.SaddleBrown);
1378 static public Color Salmon
1381 return Color.FromArgbNamed (255, 250, 128, 114, "Salmon", KnownColor.Salmon);
1385 static public Color SandyBrown
1388 return Color.FromArgbNamed (255, 244, 164, 96, "SandyBrown", KnownColor.SandyBrown);
1392 static public Color SeaGreen
1395 return Color.FromArgbNamed (255, 46, 139, 87, "SeaGreen", KnownColor.SeaGreen);
1399 static public Color SeaShell
1402 return Color.FromArgbNamed (255, 255, 245, 238, "SeaShell", KnownColor.SeaShell);
1406 static public Color Sienna
1409 return Color.FromArgbNamed (255, 160, 82, 45, "Sienna", KnownColor.Sienna);
1413 static public Color Silver
1416 return Color.FromArgbNamed (255, 192, 192, 192, "Silver", KnownColor.Silver);
1420 static public Color SkyBlue
1423 return Color.FromArgbNamed (255, 135, 206, 235, "SkyBlue", KnownColor.SkyBlue);
1427 static public Color SlateBlue
1430 return Color.FromArgbNamed (255, 106, 90, 205, "SlateBlue", KnownColor.SlateBlue);
1434 static public Color SlateGray
1437 return Color.FromArgbNamed (255, 112, 128, 144, "SlateGray", KnownColor.SlateGray);
1441 static public Color Snow
1444 return Color.FromArgbNamed (255, 255, 250, 250, "Snow", KnownColor.Snow);
1448 static public Color SpringGreen
1451 return Color.FromArgbNamed (255, 0, 255, 127, "SpringGreen", KnownColor.SpringGreen);
1455 static public Color SteelBlue
1458 return Color.FromArgbNamed (255, 70, 130, 180, "SteelBlue", KnownColor.SteelBlue);
1462 static public Color Tan
1465 return Color.FromArgbNamed (255, 210, 180, 140, "Tan", KnownColor.Tan);
1469 static public Color Teal
1472 return Color.FromArgbNamed (255, 0, 128, 128, "Teal", KnownColor.Teal);
1476 static public Color Thistle
1479 return Color.FromArgbNamed (255, 216, 191, 216, "Thistle", KnownColor.Thistle);
1483 static public Color Tomato
1486 return Color.FromArgbNamed (255, 255, 99, 71, "Tomato", KnownColor.Tomato);
1490 static public Color Turquoise
1493 return Color.FromArgbNamed (255, 64, 224, 208, "Turquoise", KnownColor.Turquoise);
1497 static public Color Violet
1500 return Color.FromArgbNamed (255, 238, 130, 238, "Violet", KnownColor.Violet);
1504 static public Color Wheat
1507 return Color.FromArgbNamed (255, 245, 222, 179, "Wheat", KnownColor.Wheat);
1511 static public Color White
1514 return Color.FromArgbNamed (255, 255, 255, 255, "White", KnownColor.White);
1518 static public Color WhiteSmoke
1521 return Color.FromArgbNamed (255, 245, 245, 245, "WhiteSmoke", KnownColor.WhiteSmoke);
1525 static public Color Yellow
1528 return Color.FromArgbNamed (255, 255, 255, 0, "Yellow", KnownColor.Yellow);
1532 static public Color YellowGreen
1535 return Color.FromArgbNamed (255, 154, 205, 50, "YellowGreen", KnownColor.YellowGreen);