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)
13 // Copyright (C) 2004,2006 Novell, Inc (http://www.novell.com)
15 // Permission is hereby granted, free of charge, to any person obtaining
16 // a copy of this software and associated documentation files (the
17 // "Software"), to deal in the Software without restriction, including
18 // without limitation the rights to use, copy, modify, merge, publish,
19 // distribute, sublicense, and/or sell copies of the Software, and to
20 // permit persons to whom the Software is furnished to do so, subject to
21 // the following conditions:
23 // The above copyright notice and this permission notice shall be
24 // included in all copies or substantial portions of the Software.
26 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
27 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
29 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
31 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
32 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35 using System.Collections;
36 using System.Runtime.InteropServices;
37 using System.ComponentModel;
38 using System.Reflection;
40 namespace System.Drawing
42 [TypeConverter(typeof(ColorConverter))]
47 [Editor ("System.Drawing.Design.ColorEditor, " + Consts.AssemblySystem_Drawing_Design, typeof (System.Drawing.Design.UITypeEditor))]
52 private static Hashtable namedColors;
53 private static Hashtable systemColors;
54 static Color [] knownColors;
56 // Private transparency (A) and R,G,B fields.
58 private static string creatingColorNames = "creatingColorNames";
60 // The specs also indicate that all three of these properties are true
61 // if created with FromKnownColor or FromNamedColor, false otherwise (FromARGB).
62 // Per Microsoft and ECMA specs these varibles are set by which constructor is used, not by their values.
64 enum ColorType : short {
72 private short knownColor;
77 internal java.awt.Color NativeObject {
79 return new java.awt.Color (R, G, B, A);
87 if (IsNamedColor) { // Can happen with stuff deserialized from MS
89 object o = knownColors [knownColor];
91 return ((Color) o).name;
93 return String.Format ("{0:x}", ToArgb ());
99 public bool IsKnownColor {
101 return (state & ((short) ColorType.Known)) != 0;
105 public bool IsSystemColor {
107 return (state & ((short) ColorType.System)) != 0;
111 public bool IsNamedColor {
113 return (state & (short)(ColorType.Known|ColorType.Named)) != 0;
118 public static Color FromArgb (int red, int green, int blue)
120 return FromArgb (255, red, green, blue);
123 public static Color FromArgb (int alpha, int red, int green, int blue)
125 CheckARGBValues (alpha, red, green, blue);
126 Color color = new Color ();
127 color.state = (short) ColorType.ARGB;
128 color.value = ((uint) alpha << 24) + (red << 16) + (green << 8) + blue;
132 private static Color FromArgbNamed (int alpha, int red, int green, int blue, string name, KnownColor knownColor)
134 Color color = FromArgb (alpha, red, green, blue);
135 color.state = (short) (ColorType.Known|ColorType.Named);
136 //color.issystemcolor = false; //???
138 // FIXME: here happens SEGFAULT.
139 //color.knownColor = (KnownColor) Enum.Parse (typeof (KnownColor), name, false);
140 color.knownColor = (short) knownColor;
144 internal static Color FromArgbSystem (int alpha, int red, int green, int blue, string name, KnownColor knownColor)
146 Color color = FromArgbNamed (alpha, red, green, blue, name, knownColor);
147 color.state |= (short) ColorType.System;
156 public static Color FromArgb (int alpha, Color baseColor)
158 return FromArgb (alpha, baseColor.R, baseColor.G, baseColor.B);
161 public static Color FromArgb (int argb)
163 return FromArgb ((argb >> 24) & 0x0FF, (argb >> 16) & 0x0FF, (argb >> 8) & 0x0FF, argb & 0x0FF);
166 public static Color FromKnownColor (KnownColor c)
168 if (knownColors == null)
172 if (c < KnownColor.ActiveBorder || c > KnownColor.MenuHighlight) {
174 if (c < KnownColor.ActiveBorder || c > KnownColor.YellowGreen) {
176 // This is what it returns!
177 Color d = FromArgb (0, 0, 0, 0);
178 d.name = c.ToString ();
179 d.state |= (short) ColorType.Named;
180 d.knownColor = (short) c;
184 return knownColors [(int) c];
187 private static Hashtable GetColorHashtableFromType (Type type)
189 Hashtable colorHash = new Hashtable (CaseInsensitiveHashCodeProvider.Default,
190 CaseInsensitiveComparer.Default);
192 PropertyInfo [] props = type.GetProperties ();
193 foreach (PropertyInfo prop in props){
194 if (prop.PropertyType != typeof (Color))
197 MethodInfo getget = prop.GetGetMethod ();
198 if (getget == null || getget.IsStatic == false)
201 object o = prop.GetValue (null, null);
202 colorHash.Add (prop.Name, o);
205 knownColors [(int) c.knownColor] = c;
210 private static void FillColorNames ()
212 lock (creatingColorNames) {
213 if (systemColors != null)
217 knownColors = new Color [(int)KnownColor.MenuHighlight + 1];
219 knownColors = new Color [(int)KnownColor.YellowGreen + 1];
221 Hashtable colorHash = GetColorHashtableFromType (typeof (Color));
222 namedColors = colorHash;
224 colorHash = GetColorHashtableFromType (typeof (SystemColors));
225 systemColors = colorHash;
229 internal static Color UpdateKnownColor (int alpha, int red, int green, int blue, string name, KnownColor known_color) {
231 Color new_color = Color.FromArgbSystem(alpha, red, green, blue, name, known_color);
232 knownColors[(int)known_color] = new_color;
236 public static Color FromName (string colorName)
238 object c = NamedColors [colorName];
240 c = SystemColors [colorName];
242 // This is what it returns!
243 Color d = FromArgb (0, 0, 0, 0);
245 d.state |= (short) ColorType.Named;
253 internal static Hashtable NamedColors
261 internal static Hashtable SystemColors
269 // -----------------------
270 // Public Shared Members
271 // -----------------------
274 /// Empty Shared Field
278 /// An uninitialized Color Structure
281 public static readonly Color Empty;
284 /// Equality Operator
288 /// Compares two Color objects. The return value is
289 /// based on the equivalence of the A,R,G,B properties
290 /// of the two Colors.
293 public static bool operator == (Color colorA, Color colorB)
295 if (colorA.value != colorB.value)
297 if (colorA.IsNamedColor != colorB.IsNamedColor)
299 if (colorA.IsSystemColor != colorB.IsSystemColor)
301 if (colorA.Name != colorB.Name)
303 if (colorA.IsEmpty != colorB.IsEmpty)
309 /// Inequality Operator
313 /// Compares two Color objects. The return value is
314 /// based on the equivalence of the A,R,G,B properties
315 /// of the two colors.
318 public static bool operator != (Color colorA, Color colorB)
320 return ! (colorA == colorB);
323 public float GetBrightness ()
325 byte minval = Math.Min (R, Math.Min (G, B));
326 byte maxval = Math.Max (R, Math.Max (G, B));
328 return (float)(maxval + minval) / 510;
331 public float GetSaturation ()
333 byte minval = (byte) Math.Min (R, Math.Min (G, B));
334 byte maxval = (byte) Math.Max (R, Math.Max (G, B));
336 if (maxval == minval)
339 int sum = maxval + minval;
343 return (float)(maxval - minval) / sum;
346 public float GetHue ()
351 byte minval = (byte) Math.Min (r, Math.Min (g, b));
352 byte maxval = (byte) Math.Max (r, Math.Max (g, b));
354 if (maxval == minval)
357 float diff = (float)(maxval - minval);
358 float rnorm = (maxval - r) / diff;
359 float gnorm = (maxval - g) / diff;
360 float bnorm = (maxval - b) / diff;
364 hue = 60.0f * (6.0f + bnorm - gnorm);
366 hue = 60.0f * (2.0f + rnorm - bnorm);
368 hue = 60.0f * (4.0f + gnorm - rnorm);
375 // -----------------------
376 // Public Instance Members
377 // -----------------------
380 /// ToKnownColor method
384 /// Returns the KnownColor enum value for this color, 0 if is not known.
386 public KnownColor ToKnownColor ()
388 return (KnownColor) knownColor;
396 /// Indicates transparent black. R,G,B = 0; A=0?
402 return state == (short) ColorType.Empty;
411 /// The transparancy of the Color.
417 // Optimization for known colors that were deserialized
418 // from an MS serialized stream.
419 if (value == 0 && IsKnownColor) {
421 object o = knownColors [knownColor];
423 value = ((Color) o).ToArgb ();
426 return (byte) ((value >> 24 & 0x0ff));
435 /// The red value of the Color.
441 // Optimization for known colors that were deserialized
442 // from an MS serialized stream.
443 if (value == 0 && IsKnownColor) {
445 object o = knownColors [knownColor];
447 value = ((Color) o).ToArgb ();
450 return (byte) ((value >> 16 & 0x0ff));
459 /// The green value of the Color.
465 // Optimization for known colors that were deserialized
466 // from an MS serialized stream.
467 if (value == 0 && IsKnownColor) {
469 object o = knownColors [knownColor];
471 value = ((Color) o).ToArgb ();
474 return (byte) ((value >> 8 & 0x0ff));
483 /// The blue value of the Color.
489 // Optimization for known colors that were deserialized
490 // from an MS serialized stream.
491 if (value == 0 && IsKnownColor) {
493 object o = knownColors [knownColor];
495 value = ((Color) o).ToArgb ();
498 return (byte) (value & 0x0ff);
507 /// Checks equivalence of this Color and another object.
510 public override bool Equals (object o)
519 /// Reference Equals Method
520 /// Is commented out because this is handled by the base class.
521 /// TODO: Is it correct to let the base class handel reference equals
525 /// Checks equivalence of this Color and another object.
527 //public bool ReferenceEquals (object o)
529 // if (!(o is Color))return false;
530 // return (this == (Color) o);
536 /// GetHashCode Method
540 /// Calculates a hashing value.
543 public override int GetHashCode ()
545 return ((int) value) ^ Name.GetHashCode ();
553 /// Formats the Color as a string in ARGB notation.
556 public override string ToString ()
559 return "Color [Empty]";
561 // Use the property here, not the field.
563 return "Color [" + Name + "]";
565 return String.Format ("Color [A={0}, R={1}, G={2}, B={3}]", A, R, G, B);
568 private static void CheckRGBValues (int red,int green,int blue)
570 if( (red > 255) || (red < 0))
571 throw CreateColorArgumentException(red, "red");
572 if( (green > 255) || (green < 0))
573 throw CreateColorArgumentException (green, "green");
574 if( (blue > 255) || (blue < 0))
575 throw CreateColorArgumentException (blue, "blue");
578 private static ArgumentException CreateColorArgumentException (int value, string color)
580 return new ArgumentException (string.Format ("'{0}' is not a valid"
581 + " value for '{1}'. '{1}' should be greater or equal to 0 and"
582 + " less than or equal to 255.", value, color));
585 private static void CheckARGBValues (int alpha,int red,int green,int blue)
587 if( (alpha > 255) || (alpha < 0))
588 throw CreateColorArgumentException (alpha, "alpha");
589 CheckRGBValues(red,green,blue);
592 //Documentation, do not remove!
593 //This is the program that was used to generate the C# source code below.
595 //using System.Diagnostics;
596 //using System.Drawing;
597 //using System.Reflection;
599 //static void Main(string[] args)
601 // Type cType = typeof (Color);
602 // PropertyInfo [] properties = cType.GetProperties ();
603 // foreach (PropertyInfo property in properties) {
604 // MethodInfo method = property.GetGetMethod();
605 // if (method != null && method.IsStatic && method.ReturnType == cType) {
606 // Color c = (Color) method.Invoke( null, new object[0] );
607 // Console.WriteLine("static public Color " + property.Name);
608 // Console.WriteLine("{\t\n\tget {");
609 // Console.WriteLine("\t\treturn Color.FromArgbNamed ({0}, {1}, {2}, {3}, \"{4}\", KnownColor.{4});",
610 // c.A, c.R, c.G, c.B, property.Name);
611 // Console.WriteLine("\t}");
612 // Console.WriteLine("}\n");
618 static public Color Transparent
621 return Color.FromArgbNamed (0, 255, 255, 255, "Transparent", KnownColor.Transparent);
625 static public Color AliceBlue
628 return Color.FromArgbNamed (255, 240, 248, 255, "AliceBlue", KnownColor.AliceBlue);
632 static public Color AntiqueWhite
635 return Color.FromArgbNamed (255, 250, 235, 215, "AntiqueWhite", KnownColor.AntiqueWhite);
639 static public Color Aqua
642 return Color.FromArgbNamed (255, 0, 255, 255, "Aqua", KnownColor.Aqua);
646 static public Color Aquamarine
649 return Color.FromArgbNamed (255, 127, 255, 212, "Aquamarine", KnownColor.Aquamarine);
653 static public Color Azure
656 return Color.FromArgbNamed (255, 240, 255, 255, "Azure", KnownColor.Azure);
660 static public Color Beige
663 return Color.FromArgbNamed (255, 245, 245, 220, "Beige", KnownColor.Beige);
667 static public Color Bisque
670 return Color.FromArgbNamed (255, 255, 228, 196, "Bisque", KnownColor.Bisque);
674 static public Color Black
677 return Color.FromArgbNamed (255, 0, 0, 0, "Black", KnownColor.Black);
681 static public Color BlanchedAlmond
684 return Color.FromArgbNamed (255, 255, 235, 205, "BlanchedAlmond", KnownColor.BlanchedAlmond);
688 static public Color Blue
691 return Color.FromArgbNamed (255, 0, 0, 255, "Blue", KnownColor.Blue);
695 static public Color BlueViolet
698 return Color.FromArgbNamed (255, 138, 43, 226, "BlueViolet", KnownColor.BlueViolet);
702 static public Color Brown
705 return Color.FromArgbNamed (255, 165, 42, 42, "Brown", KnownColor.Brown);
709 static public Color BurlyWood
712 return Color.FromArgbNamed (255, 222, 184, 135, "BurlyWood", KnownColor.BurlyWood);
716 static public Color CadetBlue
719 return Color.FromArgbNamed (255, 95, 158, 160, "CadetBlue", KnownColor.CadetBlue);
723 static public Color Chartreuse
726 return Color.FromArgbNamed (255, 127, 255, 0, "Chartreuse", KnownColor.Chartreuse);
730 static public Color Chocolate
733 return Color.FromArgbNamed (255, 210, 105, 30, "Chocolate", KnownColor.Chocolate);
737 static public Color Coral
740 return Color.FromArgbNamed (255, 255, 127, 80, "Coral", KnownColor.Coral);
744 static public Color CornflowerBlue
747 return Color.FromArgbNamed (255, 100, 149, 237, "CornflowerBlue", KnownColor.CornflowerBlue);
751 static public Color Cornsilk
754 return Color.FromArgbNamed (255, 255, 248, 220, "Cornsilk", KnownColor.Cornsilk);
758 static public Color Crimson
761 return Color.FromArgbNamed (255, 220, 20, 60, "Crimson", KnownColor.Crimson);
765 static public Color Cyan
768 return Color.FromArgbNamed (255, 0, 255, 255, "Cyan", KnownColor.Cyan);
772 static public Color DarkBlue
775 return Color.FromArgbNamed (255, 0, 0, 139, "DarkBlue", KnownColor.DarkBlue);
779 static public Color DarkCyan
782 return Color.FromArgbNamed (255, 0, 139, 139, "DarkCyan", KnownColor.DarkCyan);
786 static public Color DarkGoldenrod
789 return Color.FromArgbNamed (255, 184, 134, 11, "DarkGoldenrod", KnownColor.DarkGoldenrod);
793 static public Color DarkGray
796 return Color.FromArgbNamed (255, 169, 169, 169, "DarkGray", KnownColor.DarkGray);
800 static public Color DarkGreen
803 return Color.FromArgbNamed (255, 0, 100, 0, "DarkGreen", KnownColor.DarkGreen);
807 static public Color DarkKhaki
810 return Color.FromArgbNamed (255, 189, 183, 107, "DarkKhaki", KnownColor.DarkKhaki);
814 static public Color DarkMagenta
817 return Color.FromArgbNamed (255, 139, 0, 139, "DarkMagenta", KnownColor.DarkMagenta);
821 static public Color DarkOliveGreen
824 return Color.FromArgbNamed (255, 85, 107, 47, "DarkOliveGreen", KnownColor.DarkOliveGreen);
828 static public Color DarkOrange
831 return Color.FromArgbNamed (255, 255, 140, 0, "DarkOrange", KnownColor.DarkOrange);
835 static public Color DarkOrchid
838 return Color.FromArgbNamed (255, 153, 50, 204, "DarkOrchid", KnownColor.DarkOrchid);
842 static public Color DarkRed
845 return Color.FromArgbNamed (255, 139, 0, 0, "DarkRed", KnownColor.DarkRed);
849 static public Color DarkSalmon
852 return Color.FromArgbNamed (255, 233, 150, 122, "DarkSalmon", KnownColor.DarkSalmon);
856 static public Color DarkSeaGreen
859 return Color.FromArgbNamed (255, 143, 188, 139, "DarkSeaGreen", KnownColor.DarkSeaGreen);
863 static public Color DarkSlateBlue
866 return Color.FromArgbNamed (255, 72, 61, 139, "DarkSlateBlue", KnownColor.DarkSlateBlue);
870 static public Color DarkSlateGray
873 return Color.FromArgbNamed (255, 47, 79, 79, "DarkSlateGray", KnownColor.DarkSlateGray);
877 static public Color DarkTurquoise
880 return Color.FromArgbNamed (255, 0, 206, 209, "DarkTurquoise", KnownColor.DarkTurquoise);
884 static public Color DarkViolet
887 return Color.FromArgbNamed (255, 148, 0, 211, "DarkViolet", KnownColor.DarkViolet);
891 static public Color DeepPink
894 return Color.FromArgbNamed (255, 255, 20, 147, "DeepPink", KnownColor.DeepPink);
898 static public Color DeepSkyBlue
901 return Color.FromArgbNamed (255, 0, 191, 255, "DeepSkyBlue", KnownColor.DeepSkyBlue);
905 static public Color DimGray
908 return Color.FromArgbNamed (255, 105, 105, 105, "DimGray", KnownColor.DimGray);
912 static public Color DodgerBlue
915 return Color.FromArgbNamed (255, 30, 144, 255, "DodgerBlue", KnownColor.DodgerBlue);
919 static public Color Firebrick
922 return Color.FromArgbNamed (255, 178, 34, 34, "Firebrick", KnownColor.Firebrick);
926 static public Color FloralWhite
929 return Color.FromArgbNamed (255, 255, 250, 240, "FloralWhite", KnownColor.FloralWhite);
933 static public Color ForestGreen
936 return Color.FromArgbNamed (255, 34, 139, 34, "ForestGreen", KnownColor.ForestGreen);
940 static public Color Fuchsia
943 return Color.FromArgbNamed (255, 255, 0, 255, "Fuchsia", KnownColor.Fuchsia);
947 static public Color Gainsboro
950 return Color.FromArgbNamed (255, 220, 220, 220, "Gainsboro", KnownColor.Gainsboro);
954 static public Color GhostWhite
957 return Color.FromArgbNamed (255, 248, 248, 255, "GhostWhite", KnownColor.GhostWhite);
961 static public Color Gold
964 return Color.FromArgbNamed (255, 255, 215, 0, "Gold", KnownColor.Gold);
968 static public Color Goldenrod
971 return Color.FromArgbNamed (255, 218, 165, 32, "Goldenrod", KnownColor.Goldenrod);
975 static public Color Gray
978 return Color.FromArgbNamed (255, 128, 128, 128, "Gray", KnownColor.Gray);
982 static public Color Green
985 // LAMESPEC: MS uses A=255, R=0, G=128, B=0 for Green Color,
986 // which is seems to be wrong. G must be 255.
987 return Color.FromArgbNamed (255, 0, 128, 0, "Green", KnownColor.Green);
991 static public Color GreenYellow
994 return Color.FromArgbNamed (255, 173, 255, 47, "GreenYellow", KnownColor.GreenYellow);
998 static public Color Honeydew
1001 return Color.FromArgbNamed (255, 240, 255, 240, "Honeydew", KnownColor.Honeydew);
1005 static public Color HotPink
1008 return Color.FromArgbNamed (255, 255, 105, 180, "HotPink", KnownColor.HotPink);
1012 static public Color IndianRed
1015 return Color.FromArgbNamed (255, 205, 92, 92, "IndianRed", KnownColor.IndianRed);
1019 static public Color Indigo
1022 return Color.FromArgbNamed (255, 75, 0, 130, "Indigo", KnownColor.Indigo);
1026 static public Color Ivory
1029 return Color.FromArgbNamed (255, 255, 255, 240, "Ivory", KnownColor.Ivory);
1033 static public Color Khaki
1036 return Color.FromArgbNamed (255, 240, 230, 140, "Khaki", KnownColor.Khaki);
1040 static public Color Lavender
1043 return Color.FromArgbNamed (255, 230, 230, 250, "Lavender", KnownColor.Lavender);
1047 static public Color LavenderBlush
1050 return Color.FromArgbNamed (255, 255, 240, 245, "LavenderBlush", KnownColor.LavenderBlush);
1054 static public Color LawnGreen
1057 return Color.FromArgbNamed (255, 124, 252, 0, "LawnGreen", KnownColor.LawnGreen);
1061 static public Color LemonChiffon
1064 return Color.FromArgbNamed (255, 255, 250, 205, "LemonChiffon", KnownColor.LemonChiffon);
1068 static public Color LightBlue
1071 return Color.FromArgbNamed (255, 173, 216, 230, "LightBlue", KnownColor.LightBlue);
1075 static public Color LightCoral
1078 return Color.FromArgbNamed (255, 240, 128, 128, "LightCoral", KnownColor.LightCoral);
1082 static public Color LightCyan
1085 return Color.FromArgbNamed (255, 224, 255, 255, "LightCyan", KnownColor.LightCyan);
1089 static public Color LightGoldenrodYellow
1092 return Color.FromArgbNamed (255, 250, 250, 210, "LightGoldenrodYellow", KnownColor.LightGoldenrodYellow);
1096 static public Color LightGreen
1099 return Color.FromArgbNamed (255, 144, 238, 144, "LightGreen", KnownColor.LightGreen);
1103 static public Color LightGray
1106 return Color.FromArgbNamed (255, 211, 211, 211, "LightGray", KnownColor.LightGray);
1110 static public Color LightPink
1113 return Color.FromArgbNamed (255, 255, 182, 193, "LightPink", KnownColor.LightPink);
1117 static public Color LightSalmon
1120 return Color.FromArgbNamed (255, 255, 160, 122, "LightSalmon", KnownColor.LightSalmon);
1124 static public Color LightSeaGreen
1127 return Color.FromArgbNamed (255, 32, 178, 170, "LightSeaGreen", KnownColor.LightSeaGreen);
1131 static public Color LightSkyBlue
1134 return Color.FromArgbNamed (255, 135, 206, 250, "LightSkyBlue", KnownColor.LightSkyBlue);
1138 static public Color LightSlateGray
1141 return Color.FromArgbNamed (255, 119, 136, 153, "LightSlateGray", KnownColor.LightSlateGray);
1145 static public Color LightSteelBlue
1148 return Color.FromArgbNamed (255, 176, 196, 222, "LightSteelBlue", KnownColor.LightSteelBlue);
1152 static public Color LightYellow
1155 return Color.FromArgbNamed (255, 255, 255, 224, "LightYellow", KnownColor.LightYellow);
1159 static public Color Lime
1162 return Color.FromArgbNamed (255, 0, 255, 0, "Lime", KnownColor.Lime);
1166 static public Color LimeGreen
1169 return Color.FromArgbNamed (255, 50, 205, 50, "LimeGreen", KnownColor.LimeGreen);
1173 static public Color Linen
1176 return Color.FromArgbNamed (255, 250, 240, 230, "Linen", KnownColor.Linen);
1180 static public Color Magenta
1183 return Color.FromArgbNamed (255, 255, 0, 255, "Magenta", KnownColor.Magenta);
1187 static public Color Maroon
1190 return Color.FromArgbNamed (255, 128, 0, 0, "Maroon", KnownColor.Maroon);
1194 static public Color MediumAquamarine
1197 return Color.FromArgbNamed (255, 102, 205, 170, "MediumAquamarine", KnownColor.MediumAquamarine);
1201 static public Color MediumBlue
1204 return Color.FromArgbNamed (255, 0, 0, 205, "MediumBlue", KnownColor.MediumBlue);
1208 static public Color MediumOrchid
1211 return Color.FromArgbNamed (255, 186, 85, 211, "MediumOrchid", KnownColor.MediumOrchid);
1215 static public Color MediumPurple
1218 return Color.FromArgbNamed (255, 147, 112, 219, "MediumPurple", KnownColor.MediumPurple);
1222 static public Color MediumSeaGreen
1225 return Color.FromArgbNamed (255, 60, 179, 113, "MediumSeaGreen", KnownColor.MediumSeaGreen);
1229 static public Color MediumSlateBlue
1232 return Color.FromArgbNamed (255, 123, 104, 238, "MediumSlateBlue", KnownColor.MediumSlateBlue);
1236 static public Color MediumSpringGreen
1239 return Color.FromArgbNamed (255, 0, 250, 154, "MediumSpringGreen", KnownColor.MediumSpringGreen);
1243 static public Color MediumTurquoise
1246 return Color.FromArgbNamed (255, 72, 209, 204, "MediumTurquoise", KnownColor.MediumTurquoise);
1250 static public Color MediumVioletRed
1253 return Color.FromArgbNamed (255, 199, 21, 133, "MediumVioletRed", KnownColor.MediumVioletRed);
1257 static public Color MidnightBlue
1260 return Color.FromArgbNamed (255, 25, 25, 112, "MidnightBlue", KnownColor.MidnightBlue);
1264 static public Color MintCream
1267 return Color.FromArgbNamed (255, 245, 255, 250, "MintCream", KnownColor.MintCream);
1271 static public Color MistyRose
1274 return Color.FromArgbNamed (255, 255, 228, 225, "MistyRose", KnownColor.MistyRose);
1278 static public Color Moccasin
1281 return Color.FromArgbNamed (255, 255, 228, 181, "Moccasin", KnownColor.Moccasin);
1285 static public Color NavajoWhite
1288 return Color.FromArgbNamed (255, 255, 222, 173, "NavajoWhite", KnownColor.NavajoWhite);
1292 static public Color Navy
1295 return Color.FromArgbNamed (255, 0, 0, 128, "Navy", KnownColor.Navy);
1299 static public Color OldLace
1302 return Color.FromArgbNamed (255, 253, 245, 230, "OldLace", KnownColor.OldLace);
1306 static public Color Olive
1309 return Color.FromArgbNamed (255, 128, 128, 0, "Olive", KnownColor.Olive);
1313 static public Color OliveDrab
1316 return Color.FromArgbNamed (255, 107, 142, 35, "OliveDrab", KnownColor.OliveDrab);
1320 static public Color Orange
1323 return Color.FromArgbNamed (255, 255, 165, 0, "Orange", KnownColor.Orange);
1327 static public Color OrangeRed
1330 return Color.FromArgbNamed (255, 255, 69, 0, "OrangeRed", KnownColor.OrangeRed);
1334 static public Color Orchid
1337 return Color.FromArgbNamed (255, 218, 112, 214, "Orchid", KnownColor.Orchid);
1341 static public Color PaleGoldenrod
1344 return Color.FromArgbNamed (255, 238, 232, 170, "PaleGoldenrod", KnownColor.PaleGoldenrod);
1348 static public Color PaleGreen
1351 return Color.FromArgbNamed (255, 152, 251, 152, "PaleGreen", KnownColor.PaleGreen);
1355 static public Color PaleTurquoise
1358 return Color.FromArgbNamed (255, 175, 238, 238, "PaleTurquoise", KnownColor.PaleTurquoise);
1362 static public Color PaleVioletRed
1365 return Color.FromArgbNamed (255, 219, 112, 147, "PaleVioletRed", KnownColor.PaleVioletRed);
1369 static public Color PapayaWhip
1372 return Color.FromArgbNamed (255, 255, 239, 213, "PapayaWhip", KnownColor.PapayaWhip);
1376 static public Color PeachPuff
1379 return Color.FromArgbNamed (255, 255, 218, 185, "PeachPuff", KnownColor.PeachPuff);
1383 static public Color Peru
1386 return Color.FromArgbNamed (255, 205, 133, 63, "Peru", KnownColor.Peru);
1390 static public Color Pink
1393 return Color.FromArgbNamed (255, 255, 192, 203, "Pink", KnownColor.Pink);
1397 static public Color Plum
1400 return Color.FromArgbNamed (255, 221, 160, 221, "Plum", KnownColor.Plum);
1404 static public Color PowderBlue
1407 return Color.FromArgbNamed (255, 176, 224, 230, "PowderBlue", KnownColor.PowderBlue);
1411 static public Color Purple
1414 return Color.FromArgbNamed (255, 128, 0, 128, "Purple", KnownColor.Purple);
1418 static public Color Red
1421 return Color.FromArgbNamed (255, 255, 0, 0, "Red", KnownColor.Red);
1425 static public Color RosyBrown
1428 return Color.FromArgbNamed (255, 188, 143, 143, "RosyBrown", KnownColor.RosyBrown);
1432 static public Color RoyalBlue
1435 return Color.FromArgbNamed (255, 65, 105, 225, "RoyalBlue", KnownColor.RoyalBlue);
1439 static public Color SaddleBrown
1442 return Color.FromArgbNamed (255, 139, 69, 19, "SaddleBrown", KnownColor.SaddleBrown);
1446 static public Color Salmon
1449 return Color.FromArgbNamed (255, 250, 128, 114, "Salmon", KnownColor.Salmon);
1453 static public Color SandyBrown
1456 return Color.FromArgbNamed (255, 244, 164, 96, "SandyBrown", KnownColor.SandyBrown);
1460 static public Color SeaGreen
1463 return Color.FromArgbNamed (255, 46, 139, 87, "SeaGreen", KnownColor.SeaGreen);
1467 static public Color SeaShell
1470 return Color.FromArgbNamed (255, 255, 245, 238, "SeaShell", KnownColor.SeaShell);
1474 static public Color Sienna
1477 return Color.FromArgbNamed (255, 160, 82, 45, "Sienna", KnownColor.Sienna);
1481 static public Color Silver
1484 return Color.FromArgbNamed (255, 192, 192, 192, "Silver", KnownColor.Silver);
1488 static public Color SkyBlue
1491 return Color.FromArgbNamed (255, 135, 206, 235, "SkyBlue", KnownColor.SkyBlue);
1495 static public Color SlateBlue
1498 return Color.FromArgbNamed (255, 106, 90, 205, "SlateBlue", KnownColor.SlateBlue);
1502 static public Color SlateGray
1505 return Color.FromArgbNamed (255, 112, 128, 144, "SlateGray", KnownColor.SlateGray);
1509 static public Color Snow
1512 return Color.FromArgbNamed (255, 255, 250, 250, "Snow", KnownColor.Snow);
1516 static public Color SpringGreen
1519 return Color.FromArgbNamed (255, 0, 255, 127, "SpringGreen", KnownColor.SpringGreen);
1523 static public Color SteelBlue
1526 return Color.FromArgbNamed (255, 70, 130, 180, "SteelBlue", KnownColor.SteelBlue);
1530 static public Color Tan
1533 return Color.FromArgbNamed (255, 210, 180, 140, "Tan", KnownColor.Tan);
1537 static public Color Teal
1540 return Color.FromArgbNamed (255, 0, 128, 128, "Teal", KnownColor.Teal);
1544 static public Color Thistle
1547 return Color.FromArgbNamed (255, 216, 191, 216, "Thistle", KnownColor.Thistle);
1551 static public Color Tomato
1554 return Color.FromArgbNamed (255, 255, 99, 71, "Tomato", KnownColor.Tomato);
1558 static public Color Turquoise
1561 return Color.FromArgbNamed (255, 64, 224, 208, "Turquoise", KnownColor.Turquoise);
1565 static public Color Violet
1568 return Color.FromArgbNamed (255, 238, 130, 238, "Violet", KnownColor.Violet);
1572 static public Color Wheat
1575 return Color.FromArgbNamed (255, 245, 222, 179, "Wheat", KnownColor.Wheat);
1579 static public Color White
1582 return Color.FromArgbNamed (255, 255, 255, 255, "White", KnownColor.White);
1586 static public Color WhiteSmoke
1589 return Color.FromArgbNamed (255, 245, 245, 245, "WhiteSmoke", KnownColor.WhiteSmoke);
1593 static public Color Yellow
1596 return Color.FromArgbNamed (255, 255, 255, 0, "Yellow", KnownColor.Yellow);
1600 static public Color YellowGreen
1603 return Color.FromArgbNamed (255, 154, 205, 50, "YellowGreen", KnownColor.YellowGreen);