2 // System.Drawing.Color.cs
5 // Dennis Hayes (dennish@raytek.com)
6 // Ben Houston (ben@exocortex.org)
7 // Gonzalo Paniagua (gonzalo@ximian.com)
9 // (C) 2002 Dennis Hayes
10 // (c) 2002 Ximian, Inc. (http://www.ximiam.com)
12 // TODO: Are the static/non static functions declared correctly
15 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
17 // Permission is hereby granted, free of charge, to any person obtaining
18 // a copy of this software and associated documentation files (the
19 // "Software"), to deal in the Software without restriction, including
20 // without limitation the rights to use, copy, modify, merge, publish,
21 // distribute, sublicense, and/or sell copies of the Software, and to
22 // permit persons to whom the Software is furnished to do so, subject to
23 // the following conditions:
25 // The above copyright notice and this permission notice shall be
26 // included in all copies or substantial portions of the Software.
28 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
30 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
31 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
33 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
34 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
38 using System.Collections;
39 using System.Runtime.InteropServices;
40 using System.ComponentModel;
41 using System.Reflection;
43 namespace System.Drawing
45 [TypeConverter(typeof(ColorConverter))]
47 [Editor ("System.Drawing.Design.ColorEditor, " + Consts.AssemblySystem_Drawing_Design, typeof (System.Drawing.Design.UITypeEditor))]
51 private static Hashtable namedColors;
52 private static Hashtable systemColors;
53 static Color [] knownColors;
55 // Private transparancy (A) and R,G,B fields.
60 private static string creatingColorNames = "creatingColorNames";
62 // The specs also indicate that all three of these propities are true
63 // if created with FromKnownColor or FromNamedColor, false otherwise (FromARGB).
64 // Per Microsoft and ECMA specs these varibles are set by which constructor is used, not by their values.
65 private bool isknowncolor;
66 private bool isnamedcolor;
67 private bool issystemcolor;
68 private KnownColor knownColor;
70 private string myname;
74 if (myname == null || myname == String.Empty)
75 return String.Format ("{0:x}", ToArgb ());
80 public bool IsKnownColor {
86 public bool IsSystemColor {
92 public bool IsNamedColor {
101 public static Color FromArgb (int red, int green, int blue)
103 return FromArgb (255, red, green, blue);
106 public static Color FromArgb (int alpha, int red, int green, int blue)
108 CheckARGBValues (alpha, red, green, blue);
109 Color color = new Color ();
110 color.a = (byte) alpha;
111 color.r = (byte) red;
112 color.g = (byte) green;
113 color.b = (byte) blue;
114 color.myname = String.Empty;
118 private static Color FromArgbNamed (int alpha, int red, int green, int blue, string name, KnownColor knownColor)
120 Color color = FromArgb (alpha, red, green, blue);
121 color.isknowncolor = true;
122 color.isnamedcolor = true;
123 //color.issystemcolor = false; //???
125 // FIXME: here happens SEGFAULT.
126 //color.knownColor = (KnownColor) Enum.Parse (typeof (KnownColor), name, false);
127 color.knownColor = knownColor;
131 internal static Color FromArgbSystem (int alpha, int red, int green, int blue, string name, KnownColor knownColor)
133 Color color = FromArgbNamed (alpha, red, green, blue, name, knownColor);
134 color.issystemcolor = true;
140 return a << 24 | r << 16 | g << 8 | b;
143 public static Color FromArgb (int alpha, Color baseColor)
145 return FromArgb (alpha, baseColor.r, baseColor.g, baseColor.b);
148 public static Color FromArgb (int argb)
150 return FromArgb ((argb >> 24) & 0x0FF, (argb >> 16) & 0x0FF, (argb >> 8) & 0x0FF, argb & 0x0FF);
153 public static Color FromKnownColor (KnownColor c)
155 if (knownColors == null)
158 if (c < KnownColor.ActiveBorder || c > KnownColor.YellowGreen) {
159 // This is what it returns!
160 Color d = FromArgb (0, 0, 0, 0);
161 d.myname = c.ToString ();
162 d.isnamedcolor = true;
167 return knownColors [(int) c];
170 private static Hashtable GetColorHashtableFromType (Type type)
172 Hashtable colorHash = new Hashtable (CaseInsensitiveHashCodeProvider.Default,
173 CaseInsensitiveComparer.Default);
175 PropertyInfo [] props = type.GetProperties ();
176 foreach (PropertyInfo prop in props){
177 if (prop.PropertyType != typeof (Color))
180 MethodInfo getget = prop.GetGetMethod ();
181 if (getget == null || getget.IsStatic == false)
184 object o = prop.GetValue (null, null);
185 colorHash.Add (prop.Name, o);
188 knownColors [(int) c.knownColor] = c;
193 private static void FillColorNames ()
195 if (systemColors != null)
198 lock (creatingColorNames) {
199 if (systemColors != null)
202 knownColors = new Color [(int)KnownColor.YellowGreen + 1];
204 Hashtable colorHash = GetColorHashtableFromType (typeof (Color));
205 namedColors = colorHash;
207 colorHash = GetColorHashtableFromType (typeof (SystemColors));
208 systemColors = colorHash;
212 public static Color FromName (string colorName)
214 object c = NamedColors [colorName];
216 c = SystemColors [colorName];
218 // This is what it returns!
219 Color d = FromArgb (0, 0, 0, 0);
220 d.myname = colorName;
221 d.isnamedcolor = true;
229 internal static Hashtable NamedColors
237 internal static Hashtable SystemColors
245 // -----------------------
246 // Public Shared Members
247 // -----------------------
250 /// Empty Shared Field
254 /// An uninitialized Color Structure
257 public static readonly Color Empty;
260 /// Equality Operator
264 /// Compares two Color objects. The return value is
265 /// based on the equivalence of the A,R,G,B properties
266 /// of the two Colors.
269 public static bool operator == (Color colorA, Color colorB)
271 return ((colorA.a == colorB.a) && (colorA.r == colorB.r)
272 && (colorA.g == colorB.g) && (colorA.b == colorB.b));
276 /// Inequality Operator
280 /// Compares two Color objects. The return value is
281 /// based on the equivalence of the A,R,G,B properties
282 /// of the two colors.
285 public static bool operator != (Color colorA, Color colorB)
287 return ((colorA.a != colorB.a) || (colorA.r != colorB.r)
288 || (colorA.g != colorB.g) || (colorA.b != colorB.b));
291 public float GetBrightness (){
292 // Intensity is the normalized sum of the three RGB values.;
293 return ((float)(r + g + b))/(255*3);
295 public float GetSaturation (){
296 // S = 1 - I * Min(r,g,b)
298 (((float)(r + g +b))/3)*Math.Min(r,Math.Min(g,b))
302 public float GetHue (){
303 float top = ((float)(2*r-g-b))/(2*255);
304 float bottom = (float)Math.Sqrt(((r-g)*(r-g) + (r-b)*(g-b))/255);
305 return (float)Math.Acos(top/bottom);
308 // -----------------------
309 // Public Instance Members
310 // -----------------------
313 /// ToKnownColor method
317 /// Returns the KnownColor enum value for this color, 0 if is not known.
319 public KnownColor ToKnownColor ()
329 /// Indicates transparent black. R,G,B = 0; A=0?
335 return (a + r + g + b) == 0;
344 /// The transparancy of the Color.
359 /// The red value of the Color.
374 /// The green value of the Color.
389 /// The blue value of the Color.
404 /// Checks equivalence of this Color and another object.
407 public override bool Equals (object o)
413 if (c.r == r && c.g == g && c.b == b) {
414 if (myname != null || c.myname != null)
415 return (myname == c.myname);
422 /// Reference Equals Method
423 /// Is commented out because this is handled by the base class.
424 /// TODO: Is it correct to let the base class handel reference equals
428 /// Checks equivalence of this Color and another object.
430 //public bool ReferenceEquals (object o)
432 // if (!(o is Color))return false;
433 // return (this == (Color) o);
439 /// GetHashCode Method
443 /// Calculates a hashing value.
446 public override int GetHashCode ()
448 return ToArgb().GetHashCode();
456 /// Formats the Color as a string in ARGB notation.
459 public override string ToString ()
462 return "Color [" + myname + "]";
464 return String.Format ("Color [A={0}, R={1}, G={2}, B={3}]", a, r, g, b);
467 private static void CheckRGBValues (int red,int green,int blue)
469 if( (red > 255) || (red < 0))
470 throw new System.ArgumentOutOfRangeException
471 ("red",red,"Value must be in the range 0 - 255");
472 if( (green > 255) || (green < 0))
473 throw new System.ArgumentOutOfRangeException
474 ("green",green,"Value must be in the range 0 - 255");
475 if( (blue > 255) || (blue < 0))
476 throw new System.ArgumentOutOfRangeException
477 ("blue",blue,"Value must be in the range 0 - 255");
480 private static void CheckARGBValues (int alpha,int red,int green,int blue)
482 if( (alpha > 255) || (alpha < 0))
483 throw new System.ArgumentOutOfRangeException
484 ("alpha",alpha,"Value must be in the range 0 - 255");
485 CheckRGBValues(red,green,blue);
488 //Documentation, do not remove!
489 //This is the program that was used to generate the C# source code below.
491 //using System.Diagnostics;
492 //using System.Drawing;
493 //using System.Reflection;
495 //static void Main(string[] args)
497 // Type cType = typeof (Color);
498 // PropertyInfo [] properties = cType.GetProperties ();
499 // foreach (PropertyInfo property in properties) {
500 // MethodInfo method = property.GetGetMethod();
501 // if (method != null && method.IsStatic && method.ReturnType == cType) {
502 // Color c = (Color) method.Invoke( null, new object[0] );
503 // Console.WriteLine("static public Color " + property.Name);
504 // Console.WriteLine("{\t\n\tget {");
505 // Console.WriteLine("\t\treturn Color.FromArgbNamed ({0}, {1}, {2}, {3}, \"{4}\", KnownColor.{4});",
506 // c.A, c.R, c.G, c.B, property.Name);
507 // Console.WriteLine("\t}");
508 // Console.WriteLine("}\n");
514 static public Color Transparent
517 return Color.FromArgbNamed (0, 255, 255, 255, "Transparent", KnownColor.Transparent);
521 static public Color AliceBlue
524 return Color.FromArgbNamed (255, 240, 248, 255, "AliceBlue", KnownColor.AliceBlue);
528 static public Color AntiqueWhite
531 return Color.FromArgbNamed (255, 250, 235, 215, "AntiqueWhite", KnownColor.AntiqueWhite);
535 static public Color Aqua
538 return Color.FromArgbNamed (255, 0, 255, 255, "Aqua", KnownColor.Aqua);
542 static public Color Aquamarine
545 return Color.FromArgbNamed (255, 127, 255, 212, "Aquamarine", KnownColor.Aquamarine);
549 static public Color Azure
552 return Color.FromArgbNamed (255, 240, 255, 255, "Azure", KnownColor.Azure);
556 static public Color Beige
559 return Color.FromArgbNamed (255, 245, 245, 220, "Beige", KnownColor.Beige);
563 static public Color Bisque
566 return Color.FromArgbNamed (255, 255, 228, 196, "Bisque", KnownColor.Bisque);
570 static public Color Black
573 return Color.FromArgbNamed (255, 0, 0, 0, "Black", KnownColor.Black);
577 static public Color BlanchedAlmond
580 return Color.FromArgbNamed (255, 255, 235, 205, "BlanchedAlmond", KnownColor.BlanchedAlmond);
584 static public Color Blue
587 return Color.FromArgbNamed (255, 0, 0, 255, "Blue", KnownColor.Blue);
591 static public Color BlueViolet
594 return Color.FromArgbNamed (255, 138, 43, 226, "BlueViolet", KnownColor.BlueViolet);
598 static public Color Brown
601 return Color.FromArgbNamed (255, 165, 42, 42, "Brown", KnownColor.Brown);
605 static public Color BurlyWood
608 return Color.FromArgbNamed (255, 222, 184, 135, "BurlyWood", KnownColor.BurlyWood);
612 static public Color CadetBlue
615 return Color.FromArgbNamed (255, 95, 158, 160, "CadetBlue", KnownColor.CadetBlue);
619 static public Color Chartreuse
622 return Color.FromArgbNamed (255, 127, 255, 0, "Chartreuse", KnownColor.Chartreuse);
626 static public Color Chocolate
629 return Color.FromArgbNamed (255, 210, 105, 30, "Chocolate", KnownColor.Chocolate);
633 static public Color Coral
636 return Color.FromArgbNamed (255, 255, 127, 80, "Coral", KnownColor.Coral);
640 static public Color CornflowerBlue
643 return Color.FromArgbNamed (255, 100, 149, 237, "CornflowerBlue", KnownColor.CornflowerBlue);
647 static public Color Cornsilk
650 return Color.FromArgbNamed (255, 255, 248, 220, "Cornsilk", KnownColor.Cornsilk);
654 static public Color Crimson
657 return Color.FromArgbNamed (255, 220, 20, 60, "Crimson", KnownColor.Crimson);
661 static public Color Cyan
664 return Color.FromArgbNamed (255, 0, 255, 255, "Cyan", KnownColor.Cyan);
668 static public Color DarkBlue
671 return Color.FromArgbNamed (255, 0, 0, 139, "DarkBlue", KnownColor.DarkBlue);
675 static public Color DarkCyan
678 return Color.FromArgbNamed (255, 0, 139, 139, "DarkCyan", KnownColor.DarkCyan);
682 static public Color DarkGoldenrod
685 return Color.FromArgbNamed (255, 184, 134, 11, "DarkGoldenrod", KnownColor.DarkGoldenrod);
689 static public Color DarkGray
692 return Color.FromArgbNamed (255, 169, 169, 169, "DarkGray", KnownColor.DarkGray);
696 static public Color DarkGreen
699 return Color.FromArgbNamed (255, 0, 100, 0, "DarkGreen", KnownColor.DarkGreen);
703 static public Color DarkKhaki
706 return Color.FromArgbNamed (255, 189, 183, 107, "DarkKhaki", KnownColor.DarkKhaki);
710 static public Color DarkMagenta
713 return Color.FromArgbNamed (255, 139, 0, 139, "DarkMagenta", KnownColor.DarkMagenta);
717 static public Color DarkOliveGreen
720 return Color.FromArgbNamed (255, 85, 107, 47, "DarkOliveGreen", KnownColor.DarkOliveGreen);
724 static public Color DarkOrange
727 return Color.FromArgbNamed (255, 255, 140, 0, "DarkOrange", KnownColor.DarkOrange);
731 static public Color DarkOrchid
734 return Color.FromArgbNamed (255, 153, 50, 204, "DarkOrchid", KnownColor.DarkOrchid);
738 static public Color DarkRed
741 return Color.FromArgbNamed (255, 139, 0, 0, "DarkRed", KnownColor.DarkRed);
745 static public Color DarkSalmon
748 return Color.FromArgbNamed (255, 233, 150, 122, "DarkSalmon", KnownColor.DarkSalmon);
752 static public Color DarkSeaGreen
755 return Color.FromArgbNamed (255, 143, 188, 139, "DarkSeaGreen", KnownColor.DarkSeaGreen);
759 static public Color DarkSlateBlue
762 return Color.FromArgbNamed (255, 72, 61, 139, "DarkSlateBlue", KnownColor.DarkSlateBlue);
766 static public Color DarkSlateGray
769 return Color.FromArgbNamed (255, 47, 79, 79, "DarkSlateGray", KnownColor.DarkSlateGray);
773 static public Color DarkTurquoise
776 return Color.FromArgbNamed (255, 0, 206, 209, "DarkTurquoise", KnownColor.DarkTurquoise);
780 static public Color DarkViolet
783 return Color.FromArgbNamed (255, 148, 0, 211, "DarkViolet", KnownColor.DarkViolet);
787 static public Color DeepPink
790 return Color.FromArgbNamed (255, 255, 20, 147, "DeepPink", KnownColor.DeepPink);
794 static public Color DeepSkyBlue
797 return Color.FromArgbNamed (255, 0, 191, 255, "DeepSkyBlue", KnownColor.DeepSkyBlue);
801 static public Color DimGray
804 return Color.FromArgbNamed (255, 105, 105, 105, "DimGray", KnownColor.DimGray);
808 static public Color DodgerBlue
811 return Color.FromArgbNamed (255, 30, 144, 255, "DodgerBlue", KnownColor.DodgerBlue);
815 static public Color Firebrick
818 return Color.FromArgbNamed (255, 178, 34, 34, "Firebrick", KnownColor.Firebrick);
822 static public Color FloralWhite
825 return Color.FromArgbNamed (255, 255, 250, 240, "FloralWhite", KnownColor.FloralWhite);
829 static public Color ForestGreen
832 return Color.FromArgbNamed (255, 34, 139, 34, "ForestGreen", KnownColor.ForestGreen);
836 static public Color Fuchsia
839 return Color.FromArgbNamed (255, 255, 0, 255, "Fuchsia", KnownColor.Fuchsia);
843 static public Color Gainsboro
846 return Color.FromArgbNamed (255, 220, 220, 220, "Gainsboro", KnownColor.Gainsboro);
850 static public Color GhostWhite
853 return Color.FromArgbNamed (255, 248, 248, 255, "GhostWhite", KnownColor.GhostWhite);
857 static public Color Gold
860 return Color.FromArgbNamed (255, 255, 215, 0, "Gold", KnownColor.Gold);
864 static public Color Goldenrod
867 return Color.FromArgbNamed (255, 218, 165, 32, "Goldenrod", KnownColor.Goldenrod);
871 static public Color Gray
874 return Color.FromArgbNamed (255, 128, 128, 128, "Gray", KnownColor.Gray);
878 static public Color Green
881 // LAMESPEC: MS uses A=255, R=0, G=128, B=0 for Green Color,
882 // which is seems to be wrong. G must be 255.
883 return Color.FromArgbNamed (255, 0, 128, 0, "Green", KnownColor.Green);
887 static public Color GreenYellow
890 return Color.FromArgbNamed (255, 173, 255, 47, "GreenYellow", KnownColor.GreenYellow);
894 static public Color Honeydew
897 return Color.FromArgbNamed (255, 240, 255, 240, "Honeydew", KnownColor.Honeydew);
901 static public Color HotPink
904 return Color.FromArgbNamed (255, 255, 105, 180, "HotPink", KnownColor.HotPink);
908 static public Color IndianRed
911 return Color.FromArgbNamed (255, 205, 92, 92, "IndianRed", KnownColor.IndianRed);
915 static public Color Indigo
918 return Color.FromArgbNamed (255, 75, 0, 130, "Indigo", KnownColor.Indigo);
922 static public Color Ivory
925 return Color.FromArgbNamed (255, 255, 255, 240, "Ivory", KnownColor.Ivory);
929 static public Color Khaki
932 return Color.FromArgbNamed (255, 240, 230, 140, "Khaki", KnownColor.Khaki);
936 static public Color Lavender
939 return Color.FromArgbNamed (255, 230, 230, 250, "Lavender", KnownColor.Lavender);
943 static public Color LavenderBlush
946 return Color.FromArgbNamed (255, 255, 240, 245, "LavenderBlush", KnownColor.LavenderBlush);
950 static public Color LawnGreen
953 return Color.FromArgbNamed (255, 124, 252, 0, "LawnGreen", KnownColor.LawnGreen);
957 static public Color LemonChiffon
960 return Color.FromArgbNamed (255, 255, 250, 205, "LemonChiffon", KnownColor.LemonChiffon);
964 static public Color LightBlue
967 return Color.FromArgbNamed (255, 173, 216, 230, "LightBlue", KnownColor.LightBlue);
971 static public Color LightCoral
974 return Color.FromArgbNamed (255, 240, 128, 128, "LightCoral", KnownColor.LightCoral);
978 static public Color LightCyan
981 return Color.FromArgbNamed (255, 224, 255, 255, "LightCyan", KnownColor.LightCyan);
985 static public Color LightGoldenrodYellow
988 return Color.FromArgbNamed (255, 250, 250, 210, "LightGoldenrodYellow", KnownColor.LightGoldenrodYellow);
992 static public Color LightGreen
995 return Color.FromArgbNamed (255, 144, 238, 144, "LightGreen", KnownColor.LightGreen);
999 static public Color LightGray
1002 return Color.FromArgbNamed (255, 211, 211, 211, "LightGray", KnownColor.LightGray);
1006 static public Color LightPink
1009 return Color.FromArgbNamed (255, 255, 182, 193, "LightPink", KnownColor.LightPink);
1013 static public Color LightSalmon
1016 return Color.FromArgbNamed (255, 255, 160, 122, "LightSalmon", KnownColor.LightSalmon);
1020 static public Color LightSeaGreen
1023 return Color.FromArgbNamed (255, 32, 178, 170, "LightSeaGreen", KnownColor.LightSeaGreen);
1027 static public Color LightSkyBlue
1030 return Color.FromArgbNamed (255, 135, 206, 250, "LightSkyBlue", KnownColor.LightSkyBlue);
1034 static public Color LightSlateGray
1037 return Color.FromArgbNamed (255, 119, 136, 153, "LightSlateGray", KnownColor.LightSlateGray);
1041 static public Color LightSteelBlue
1044 return Color.FromArgbNamed (255, 176, 196, 222, "LightSteelBlue", KnownColor.LightSteelBlue);
1048 static public Color LightYellow
1051 return Color.FromArgbNamed (255, 255, 255, 224, "LightYellow", KnownColor.LightYellow);
1055 static public Color Lime
1058 return Color.FromArgbNamed (255, 0, 255, 0, "Lime", KnownColor.Lime);
1062 static public Color LimeGreen
1065 return Color.FromArgbNamed (255, 50, 205, 50, "LimeGreen", KnownColor.LimeGreen);
1069 static public Color Linen
1072 return Color.FromArgbNamed (255, 250, 240, 230, "Linen", KnownColor.Linen);
1076 static public Color Magenta
1079 return Color.FromArgbNamed (255, 255, 0, 255, "Magenta", KnownColor.Magenta);
1083 static public Color Maroon
1086 return Color.FromArgbNamed (255, 128, 0, 0, "Maroon", KnownColor.Maroon);
1090 static public Color MediumAquamarine
1093 return Color.FromArgbNamed (255, 102, 205, 170, "MediumAquamarine", KnownColor.MediumAquamarine);
1097 static public Color MediumBlue
1100 return Color.FromArgbNamed (255, 0, 0, 205, "MediumBlue", KnownColor.MediumBlue);
1104 static public Color MediumOrchid
1107 return Color.FromArgbNamed (255, 186, 85, 211, "MediumOrchid", KnownColor.MediumOrchid);
1111 static public Color MediumPurple
1114 return Color.FromArgbNamed (255, 147, 112, 219, "MediumPurple", KnownColor.MediumPurple);
1118 static public Color MediumSeaGreen
1121 return Color.FromArgbNamed (255, 60, 179, 113, "MediumSeaGreen", KnownColor.MediumSeaGreen);
1125 static public Color MediumSlateBlue
1128 return Color.FromArgbNamed (255, 123, 104, 238, "MediumSlateBlue", KnownColor.MediumSlateBlue);
1132 static public Color MediumSpringGreen
1135 return Color.FromArgbNamed (255, 0, 250, 154, "MediumSpringGreen", KnownColor.MediumSpringGreen);
1139 static public Color MediumTurquoise
1142 return Color.FromArgbNamed (255, 72, 209, 204, "MediumTurquoise", KnownColor.MediumTurquoise);
1146 static public Color MediumVioletRed
1149 return Color.FromArgbNamed (255, 199, 21, 133, "MediumVioletRed", KnownColor.MediumVioletRed);
1153 static public Color MidnightBlue
1156 return Color.FromArgbNamed (255, 25, 25, 112, "MidnightBlue", KnownColor.MidnightBlue);
1160 static public Color MintCream
1163 return Color.FromArgbNamed (255, 245, 255, 250, "MintCream", KnownColor.MintCream);
1167 static public Color MistyRose
1170 return Color.FromArgbNamed (255, 255, 228, 225, "MistyRose", KnownColor.MistyRose);
1174 static public Color Moccasin
1177 return Color.FromArgbNamed (255, 255, 228, 181, "Moccasin", KnownColor.Moccasin);
1181 static public Color NavajoWhite
1184 return Color.FromArgbNamed (255, 255, 222, 173, "NavajoWhite", KnownColor.NavajoWhite);
1188 static public Color Navy
1191 return Color.FromArgbNamed (255, 0, 0, 128, "Navy", KnownColor.Navy);
1195 static public Color OldLace
1198 return Color.FromArgbNamed (255, 253, 245, 230, "OldLace", KnownColor.OldLace);
1202 static public Color Olive
1205 return Color.FromArgbNamed (255, 128, 128, 0, "Olive", KnownColor.Olive);
1209 static public Color OliveDrab
1212 return Color.FromArgbNamed (255, 107, 142, 35, "OliveDrab", KnownColor.OliveDrab);
1216 static public Color Orange
1219 return Color.FromArgbNamed (255, 255, 165, 0, "Orange", KnownColor.Orange);
1223 static public Color OrangeRed
1226 return Color.FromArgbNamed (255, 255, 69, 0, "OrangeRed", KnownColor.OrangeRed);
1230 static public Color Orchid
1233 return Color.FromArgbNamed (255, 218, 112, 214, "Orchid", KnownColor.Orchid);
1237 static public Color PaleGoldenrod
1240 return Color.FromArgbNamed (255, 238, 232, 170, "PaleGoldenrod", KnownColor.PaleGoldenrod);
1244 static public Color PaleGreen
1247 return Color.FromArgbNamed (255, 152, 251, 152, "PaleGreen", KnownColor.PaleGreen);
1251 static public Color PaleTurquoise
1254 return Color.FromArgbNamed (255, 175, 238, 238, "PaleTurquoise", KnownColor.PaleTurquoise);
1258 static public Color PaleVioletRed
1261 return Color.FromArgbNamed (255, 219, 112, 147, "PaleVioletRed", KnownColor.PaleVioletRed);
1265 static public Color PapayaWhip
1268 return Color.FromArgbNamed (255, 255, 239, 213, "PapayaWhip", KnownColor.PapayaWhip);
1272 static public Color PeachPuff
1275 return Color.FromArgbNamed (255, 255, 218, 185, "PeachPuff", KnownColor.PeachPuff);
1279 static public Color Peru
1282 return Color.FromArgbNamed (255, 205, 133, 63, "Peru", KnownColor.Peru);
1286 static public Color Pink
1289 return Color.FromArgbNamed (255, 255, 192, 203, "Pink", KnownColor.Pink);
1293 static public Color Plum
1296 return Color.FromArgbNamed (255, 221, 160, 221, "Plum", KnownColor.Plum);
1300 static public Color PowderBlue
1303 return Color.FromArgbNamed (255, 176, 224, 230, "PowderBlue", KnownColor.PowderBlue);
1307 static public Color Purple
1310 return Color.FromArgbNamed (255, 128, 0, 128, "Purple", KnownColor.Purple);
1314 static public Color Red
1317 return Color.FromArgbNamed (255, 255, 0, 0, "Red", KnownColor.Red);
1321 static public Color RosyBrown
1324 return Color.FromArgbNamed (255, 188, 143, 143, "RosyBrown", KnownColor.RosyBrown);
1328 static public Color RoyalBlue
1331 return Color.FromArgbNamed (255, 65, 105, 225, "RoyalBlue", KnownColor.RoyalBlue);
1335 static public Color SaddleBrown
1338 return Color.FromArgbNamed (255, 139, 69, 19, "SaddleBrown", KnownColor.SaddleBrown);
1342 static public Color Salmon
1345 return Color.FromArgbNamed (255, 250, 128, 114, "Salmon", KnownColor.Salmon);
1349 static public Color SandyBrown
1352 return Color.FromArgbNamed (255, 244, 164, 96, "SandyBrown", KnownColor.SandyBrown);
1356 static public Color SeaGreen
1359 return Color.FromArgbNamed (255, 46, 139, 87, "SeaGreen", KnownColor.SeaGreen);
1363 static public Color SeaShell
1366 return Color.FromArgbNamed (255, 255, 245, 238, "SeaShell", KnownColor.SeaShell);
1370 static public Color Sienna
1373 return Color.FromArgbNamed (255, 160, 82, 45, "Sienna", KnownColor.Sienna);
1377 static public Color Silver
1380 return Color.FromArgbNamed (255, 192, 192, 192, "Silver", KnownColor.Silver);
1384 static public Color SkyBlue
1387 return Color.FromArgbNamed (255, 135, 206, 235, "SkyBlue", KnownColor.SkyBlue);
1391 static public Color SlateBlue
1394 return Color.FromArgbNamed (255, 106, 90, 205, "SlateBlue", KnownColor.SlateBlue);
1398 static public Color SlateGray
1401 return Color.FromArgbNamed (255, 112, 128, 144, "SlateGray", KnownColor.SlateGray);
1405 static public Color Snow
1408 return Color.FromArgbNamed (255, 255, 250, 250, "Snow", KnownColor.Snow);
1412 static public Color SpringGreen
1415 return Color.FromArgbNamed (255, 0, 255, 127, "SpringGreen", KnownColor.SpringGreen);
1419 static public Color SteelBlue
1422 return Color.FromArgbNamed (255, 70, 130, 180, "SteelBlue", KnownColor.SteelBlue);
1426 static public Color Tan
1429 return Color.FromArgbNamed (255, 210, 180, 140, "Tan", KnownColor.Tan);
1433 static public Color Teal
1436 return Color.FromArgbNamed (255, 0, 128, 128, "Teal", KnownColor.Teal);
1440 static public Color Thistle
1443 return Color.FromArgbNamed (255, 216, 191, 216, "Thistle", KnownColor.Thistle);
1447 static public Color Tomato
1450 return Color.FromArgbNamed (255, 255, 99, 71, "Tomato", KnownColor.Tomato);
1454 static public Color Turquoise
1457 return Color.FromArgbNamed (255, 64, 224, 208, "Turquoise", KnownColor.Turquoise);
1461 static public Color Violet
1464 return Color.FromArgbNamed (255, 238, 130, 238, "Violet", KnownColor.Violet);
1468 static public Color Wheat
1471 return Color.FromArgbNamed (255, 245, 222, 179, "Wheat", KnownColor.Wheat);
1475 static public Color White
1478 return Color.FromArgbNamed (255, 255, 255, 255, "White", KnownColor.White);
1482 static public Color WhiteSmoke
1485 return Color.FromArgbNamed (255, 245, 245, 245, "WhiteSmoke", KnownColor.WhiteSmoke);
1489 static public Color Yellow
1492 return Color.FromArgbNamed (255, 255, 255, 0, "Yellow", KnownColor.Yellow);
1496 static public Color YellowGreen
1499 return Color.FromArgbNamed (255, 154, 205, 50, "YellowGreen", KnownColor.YellowGreen);