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)
9 // Sebastien Pouliot <sebastien@ximian.com>
11 // (C) 2002 Dennis Hayes
12 // (c) 2002 Ximian, Inc. (http://www.ximiam.com)
13 // (C) 2005 HotFeet GmbH (http://www.hotfeet.ch)
14 // Copyright (C) 2004,2006-2007 Novell, Inc (http://www.novell.com)
16 // Permission is hereby granted, free of charge, to any person obtaining
17 // a copy of this software and associated documentation files (the
18 // "Software"), to deal in the Software without restriction, including
19 // without limitation the rights to use, copy, modify, merge, publish,
20 // distribute, sublicense, and/or sell copies of the Software, and to
21 // permit persons to whom the Software is furnished to do so, subject to
22 // the following conditions:
24 // The above copyright notice and this permission notice shall be
25 // included in all copies or substantial portions of the Software.
27 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
28 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
29 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
30 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
31 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
32 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
33 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
36 using System.ComponentModel;
37 using System.Runtime.InteropServices;
39 namespace System.Drawing
41 #if !MONOTOUCH && !MONOMAC
42 [TypeConverter(typeof(ColorConverter))]
43 [Editor ("System.Drawing.Design.ColorEditor, " + Consts.AssemblySystem_Drawing_Design, typeof (System.Drawing.Design.UITypeEditor))]
48 // Private transparency (A) and R,G,B fields.
51 // The specs also indicate that all three of these properties are true
52 // if created with FromKnownColor or FromNamedColor, false otherwise (FromARGB).
53 // Per Microsoft and ECMA specs these varibles are set by which constructor is used, not by their values.
55 internal enum ColorType : short {
64 internal short knownColor;
66 // Mono bug #324144 is holding this change
67 // MS 1.1 requires this member to be present for serialization (not so in 2.0)
68 // however it's bad to keep a string (reference) in a struct
74 #if NET_2_0_ONCE_MONO_BUG_324144_IS_FIXED
76 return KnownColors.GetName (knownColor);
78 return String.Format ("{0:x}", ToArgb ());
80 // name is required for serialization under 1.x, but not under 2.0
82 // Can happen with stuff deserialized from MS
84 name = KnownColors.GetName (knownColor);
86 name = String.Format ("{0:x}", ToArgb ());
93 public bool IsKnownColor {
95 return (state & ((short) ColorType.Known)) != 0;
99 public bool IsSystemColor {
101 return (state & ((short) ColorType.System)) != 0;
105 public bool IsNamedColor {
107 return (state & (short)(ColorType.Known|ColorType.Named)) != 0;
111 internal long Value {
113 // Optimization for known colors that were deserialized
114 // from an MS serialized stream.
115 if (value == 0 && IsKnownColor) {
116 value = KnownColors.FromKnownColor ((KnownColor)knownColor).ToArgb () & 0xFFFFFFFF;
120 set { this.value = value; }
123 public static Color FromArgb (int red, int green, int blue)
125 return FromArgb (255, red, green, blue);
128 public static Color FromArgb (int alpha, int red, int green, int blue)
130 CheckARGBValues (alpha, red, green, blue);
131 Color color = new Color ();
132 color.state = (short) ColorType.ARGB;
133 color.Value = (int)((uint) alpha << 24) + (red << 16) + (green << 8) + blue;
142 public static Color FromArgb (int alpha, Color baseColor)
144 return FromArgb (alpha, baseColor.R, baseColor.G, baseColor.B);
147 public static Color FromArgb (int argb)
149 return FromArgb ((argb >> 24) & 0x0FF, (argb >> 16) & 0x0FF, (argb >> 8) & 0x0FF, argb & 0x0FF);
152 public static Color FromKnownColor (KnownColor color)
154 return KnownColors.FromKnownColor (color);
157 public static Color FromName (string name)
160 KnownColor kc = (KnownColor) Enum.Parse (typeof (KnownColor), name, true);
161 return KnownColors.FromKnownColor (kc);
164 // This is what it returns!
165 Color d = FromArgb (0, 0, 0, 0);
167 d.state |= (short) ColorType.Named;
173 // -----------------------
174 // Public Shared Members
175 // -----------------------
178 /// Empty Shared Field
182 /// An uninitialized Color Structure
185 public static readonly Color Empty;
188 /// Equality Operator
192 /// Compares two Color objects. The return value is
193 /// based on the equivalence of the A,R,G,B properties
194 /// of the two Colors.
197 public static bool operator == (Color left, Color right)
199 if (left.Value != right.Value)
201 if (left.IsNamedColor != right.IsNamedColor)
203 if (left.IsSystemColor != right.IsSystemColor)
205 if (left.IsEmpty != right.IsEmpty)
207 if (left.IsNamedColor) {
208 // then both are named (see previous check) and so we need to compare them
209 // but otherwise we don't as it kills performance (Name calls String.Format)
210 if (left.Name != right.Name)
217 /// Inequality Operator
221 /// Compares two Color objects. The return value is
222 /// based on the equivalence of the A,R,G,B properties
223 /// of the two colors.
226 public static bool operator != (Color left, Color right)
228 return ! (left == right);
231 public float GetBrightness ()
233 byte minval = Math.Min (R, Math.Min (G, B));
234 byte maxval = Math.Max (R, Math.Max (G, B));
236 return (float)(maxval + minval) / 510;
239 public float GetSaturation ()
241 byte minval = (byte) Math.Min (R, Math.Min (G, B));
242 byte maxval = (byte) Math.Max (R, Math.Max (G, B));
244 if (maxval == minval)
247 int sum = maxval + minval;
251 return (float)(maxval - minval) / sum;
254 public float GetHue ()
259 byte minval = (byte) Math.Min (r, Math.Min (g, b));
260 byte maxval = (byte) Math.Max (r, Math.Max (g, b));
262 if (maxval == minval)
265 float diff = (float)(maxval - minval);
266 float rnorm = (maxval - r) / diff;
267 float gnorm = (maxval - g) / diff;
268 float bnorm = (maxval - b) / diff;
272 hue = 60.0f * (6.0f + bnorm - gnorm);
274 hue = 60.0f * (2.0f + rnorm - bnorm);
276 hue = 60.0f * (4.0f + gnorm - rnorm);
283 // -----------------------
284 // Public Instance Members
285 // -----------------------
288 /// ToKnownColor method
292 /// Returns the KnownColor enum value for this color, 0 if is not known.
294 public KnownColor ToKnownColor ()
296 return (KnownColor) knownColor;
304 /// Indicates transparent black. R,G,B = 0; A=0?
310 return state == (short) ColorType.Empty;
315 get { return (byte) (Value >> 24); }
319 get { return (byte) (Value >> 16); }
323 get { return (byte) (Value >> 8); }
327 get { return (byte) Value; }
335 /// Checks equivalence of this Color and another object.
338 public override bool Equals (object obj)
342 Color c = (Color) obj;
347 /// Reference Equals Method
348 /// Is commented out because this is handled by the base class.
349 /// TODO: Is it correct to let the base class handel reference equals
353 /// Checks equivalence of this Color and another object.
355 //public bool ReferenceEquals (object o)
357 // if (!(o is Color))return false;
358 // return (this == (Color) o);
364 /// GetHashCode Method
368 /// Calculates a hashing value.
371 public override int GetHashCode ()
373 int hc = (int)(Value ^ (Value >> 32) ^ state ^ (knownColor >> 16));
375 hc ^= Name.GetHashCode ();
384 /// Formats the Color as a string in ARGB notation.
387 public override string ToString ()
390 return "Color [Empty]";
392 // Use the property here, not the field.
394 return "Color [" + Name + "]";
396 return String.Format ("Color [A={0}, R={1}, G={2}, B={3}]", A, R, G, B);
399 private static void CheckRGBValues (int red,int green,int blue)
401 if( (red > 255) || (red < 0))
402 throw CreateColorArgumentException(red, "red");
403 if( (green > 255) || (green < 0))
404 throw CreateColorArgumentException (green, "green");
405 if( (blue > 255) || (blue < 0))
406 throw CreateColorArgumentException (blue, "blue");
409 private static ArgumentException CreateColorArgumentException (int value, string color)
411 return new ArgumentException (string.Format ("'{0}' is not a valid"
412 + " value for '{1}'. '{1}' should be greater or equal to 0 and"
413 + " less than or equal to 255.", value, color));
416 private static void CheckARGBValues (int alpha,int red,int green,int blue)
418 if( (alpha > 255) || (alpha < 0))
419 throw CreateColorArgumentException (alpha, "alpha");
420 CheckRGBValues(red,green,blue);
424 static public Color Transparent {
425 get { return KnownColors.FromKnownColor (KnownColor.Transparent); }
428 static public Color AliceBlue {
429 get { return KnownColors.FromKnownColor (KnownColor.AliceBlue); }
432 static public Color AntiqueWhite {
433 get { return KnownColors.FromKnownColor (KnownColor.AntiqueWhite); }
436 static public Color Aqua {
437 get { return KnownColors.FromKnownColor (KnownColor.Aqua); }
440 static public Color Aquamarine {
441 get { return KnownColors.FromKnownColor (KnownColor.Aquamarine); }
444 static public Color Azure {
445 get { return KnownColors.FromKnownColor (KnownColor.Azure); }
448 static public Color Beige {
449 get { return KnownColors.FromKnownColor (KnownColor.Beige); }
452 static public Color Bisque {
453 get { return KnownColors.FromKnownColor (KnownColor.Bisque); }
456 static public Color Black {
457 get { return KnownColors.FromKnownColor (KnownColor.Black); }
460 static public Color BlanchedAlmond {
461 get { return KnownColors.FromKnownColor (KnownColor.BlanchedAlmond); }
464 static public Color Blue {
465 get { return KnownColors.FromKnownColor (KnownColor.Blue); }
468 static public Color BlueViolet {
469 get { return KnownColors.FromKnownColor (KnownColor.BlueViolet); }
472 static public Color Brown {
473 get { return KnownColors.FromKnownColor (KnownColor.Brown); }
476 static public Color BurlyWood {
477 get { return KnownColors.FromKnownColor (KnownColor.BurlyWood); }
480 static public Color CadetBlue {
481 get { return KnownColors.FromKnownColor (KnownColor.CadetBlue); }
484 static public Color Chartreuse {
485 get { return KnownColors.FromKnownColor (KnownColor.Chartreuse); }
488 static public Color Chocolate {
489 get { return KnownColors.FromKnownColor (KnownColor.Chocolate); }
492 static public Color Coral {
493 get { return KnownColors.FromKnownColor (KnownColor.Coral); }
496 static public Color CornflowerBlue {
497 get { return KnownColors.FromKnownColor (KnownColor.CornflowerBlue); }
500 static public Color Cornsilk {
501 get { return KnownColors.FromKnownColor (KnownColor.Cornsilk); }
504 static public Color Crimson {
505 get { return KnownColors.FromKnownColor (KnownColor.Crimson); }
508 static public Color Cyan {
509 get { return KnownColors.FromKnownColor (KnownColor.Cyan); }
512 static public Color DarkBlue {
513 get { return KnownColors.FromKnownColor (KnownColor.DarkBlue); }
516 static public Color DarkCyan {
517 get { return KnownColors.FromKnownColor (KnownColor.DarkCyan); }
520 static public Color DarkGoldenrod {
521 get { return KnownColors.FromKnownColor (KnownColor.DarkGoldenrod); }
524 static public Color DarkGray {
525 get { return KnownColors.FromKnownColor (KnownColor.DarkGray); }
528 static public Color DarkGreen {
529 get { return KnownColors.FromKnownColor (KnownColor.DarkGreen); }
532 static public Color DarkKhaki {
533 get { return KnownColors.FromKnownColor (KnownColor.DarkKhaki); }
536 static public Color DarkMagenta {
537 get { return KnownColors.FromKnownColor (KnownColor.DarkMagenta); }
540 static public Color DarkOliveGreen {
541 get { return KnownColors.FromKnownColor (KnownColor.DarkOliveGreen); }
544 static public Color DarkOrange {
545 get { return KnownColors.FromKnownColor (KnownColor.DarkOrange); }
548 static public Color DarkOrchid {
549 get { return KnownColors.FromKnownColor (KnownColor.DarkOrchid); }
552 static public Color DarkRed {
553 get { return KnownColors.FromKnownColor (KnownColor.DarkRed); }
556 static public Color DarkSalmon {
557 get { return KnownColors.FromKnownColor (KnownColor.DarkSalmon); }
560 static public Color DarkSeaGreen {
561 get { return KnownColors.FromKnownColor (KnownColor.DarkSeaGreen); }
564 static public Color DarkSlateBlue {
565 get { return KnownColors.FromKnownColor (KnownColor.DarkSlateBlue); }
568 static public Color DarkSlateGray {
569 get { return KnownColors.FromKnownColor (KnownColor.DarkSlateGray); }
572 static public Color DarkTurquoise {
573 get { return KnownColors.FromKnownColor (KnownColor.DarkTurquoise); }
576 static public Color DarkViolet {
577 get { return KnownColors.FromKnownColor (KnownColor.DarkViolet); }
580 static public Color DeepPink {
581 get { return KnownColors.FromKnownColor (KnownColor.DeepPink); }
584 static public Color DeepSkyBlue {
585 get { return KnownColors.FromKnownColor (KnownColor.DeepSkyBlue); }
588 static public Color DimGray {
589 get { return KnownColors.FromKnownColor (KnownColor.DimGray); }
592 static public Color DodgerBlue {
593 get { return KnownColors.FromKnownColor (KnownColor.DodgerBlue); }
596 static public Color Firebrick {
597 get { return KnownColors.FromKnownColor (KnownColor.Firebrick); }
600 static public Color FloralWhite {
601 get { return KnownColors.FromKnownColor (KnownColor.FloralWhite); }
604 static public Color ForestGreen {
605 get { return KnownColors.FromKnownColor (KnownColor.ForestGreen); }
608 static public Color Fuchsia {
609 get { return KnownColors.FromKnownColor (KnownColor.Fuchsia); }
612 static public Color Gainsboro {
613 get { return KnownColors.FromKnownColor (KnownColor.Gainsboro); }
616 static public Color GhostWhite {
617 get { return KnownColors.FromKnownColor (KnownColor.GhostWhite); }
620 static public Color Gold {
621 get { return KnownColors.FromKnownColor (KnownColor.Gold); }
624 static public Color Goldenrod {
625 get { return KnownColors.FromKnownColor (KnownColor.Goldenrod); }
628 static public Color Gray {
629 get { return KnownColors.FromKnownColor (KnownColor.Gray); }
632 static public Color Green {
633 get { return KnownColors.FromKnownColor (KnownColor.Green); }
636 static public Color GreenYellow {
637 get { return KnownColors.FromKnownColor (KnownColor.GreenYellow); }
640 static public Color Honeydew {
641 get { return KnownColors.FromKnownColor (KnownColor.Honeydew); }
644 static public Color HotPink {
645 get { return KnownColors.FromKnownColor (KnownColor.HotPink); }
648 static public Color IndianRed {
649 get { return KnownColors.FromKnownColor (KnownColor.IndianRed); }
652 static public Color Indigo {
653 get { return KnownColors.FromKnownColor (KnownColor.Indigo); }
656 static public Color Ivory {
657 get { return KnownColors.FromKnownColor (KnownColor.Ivory); }
660 static public Color Khaki {
661 get { return KnownColors.FromKnownColor (KnownColor.Khaki); }
664 static public Color Lavender {
665 get { return KnownColors.FromKnownColor (KnownColor.Lavender); }
668 static public Color LavenderBlush {
669 get { return KnownColors.FromKnownColor (KnownColor.LavenderBlush); }
672 static public Color LawnGreen {
673 get { return KnownColors.FromKnownColor (KnownColor.LawnGreen); }
676 static public Color LemonChiffon {
677 get { return KnownColors.FromKnownColor (KnownColor.LemonChiffon); }
680 static public Color LightBlue {
681 get { return KnownColors.FromKnownColor (KnownColor.LightBlue); }
684 static public Color LightCoral {
685 get { return KnownColors.FromKnownColor (KnownColor.LightCoral); }
688 static public Color LightCyan {
689 get { return KnownColors.FromKnownColor (KnownColor.LightCyan); }
692 static public Color LightGoldenrodYellow {
693 get { return KnownColors.FromKnownColor (KnownColor.LightGoldenrodYellow); }
696 static public Color LightGreen {
697 get { return KnownColors.FromKnownColor (KnownColor.LightGreen); }
700 static public Color LightGray {
701 get { return KnownColors.FromKnownColor (KnownColor.LightGray); }
704 static public Color LightPink {
705 get { return KnownColors.FromKnownColor (KnownColor.LightPink); }
708 static public Color LightSalmon {
709 get { return KnownColors.FromKnownColor (KnownColor.LightSalmon); }
712 static public Color LightSeaGreen {
713 get { return KnownColors.FromKnownColor (KnownColor.LightSeaGreen); }
716 static public Color LightSkyBlue {
717 get { return KnownColors.FromKnownColor (KnownColor.LightSkyBlue); }
720 static public Color LightSlateGray {
721 get { return KnownColors.FromKnownColor (KnownColor.LightSlateGray); }
724 static public Color LightSteelBlue {
725 get { return KnownColors.FromKnownColor (KnownColor.LightSteelBlue); }
728 static public Color LightYellow {
729 get { return KnownColors.FromKnownColor (KnownColor.LightYellow); }
732 static public Color Lime {
733 get { return KnownColors.FromKnownColor (KnownColor.Lime); }
736 static public Color LimeGreen {
737 get { return KnownColors.FromKnownColor (KnownColor.LimeGreen); }
740 static public Color Linen {
741 get { return KnownColors.FromKnownColor (KnownColor.Linen); }
744 static public Color Magenta {
745 get { return KnownColors.FromKnownColor (KnownColor.Magenta); }
748 static public Color Maroon {
749 get { return KnownColors.FromKnownColor (KnownColor.Maroon); }
752 static public Color MediumAquamarine {
753 get { return KnownColors.FromKnownColor (KnownColor.MediumAquamarine); }
756 static public Color MediumBlue {
757 get { return KnownColors.FromKnownColor (KnownColor.MediumBlue); }
760 static public Color MediumOrchid {
761 get { return KnownColors.FromKnownColor (KnownColor.MediumOrchid); }
764 static public Color MediumPurple {
765 get { return KnownColors.FromKnownColor (KnownColor.MediumPurple); }
768 static public Color MediumSeaGreen {
769 get { return KnownColors.FromKnownColor (KnownColor.MediumSeaGreen); }
772 static public Color MediumSlateBlue {
773 get { return KnownColors.FromKnownColor (KnownColor.MediumSlateBlue); }
776 static public Color MediumSpringGreen {
777 get { return KnownColors.FromKnownColor (KnownColor.MediumSpringGreen); }
780 static public Color MediumTurquoise {
781 get { return KnownColors.FromKnownColor (KnownColor.MediumTurquoise); }
784 static public Color MediumVioletRed {
785 get { return KnownColors.FromKnownColor (KnownColor.MediumVioletRed); }
788 static public Color MidnightBlue {
789 get { return KnownColors.FromKnownColor (KnownColor.MidnightBlue); }
792 static public Color MintCream {
793 get { return KnownColors.FromKnownColor (KnownColor.MintCream); }
796 static public Color MistyRose {
797 get { return KnownColors.FromKnownColor (KnownColor.MistyRose); }
800 static public Color Moccasin {
801 get { return KnownColors.FromKnownColor (KnownColor.Moccasin); }
804 static public Color NavajoWhite {
805 get { return KnownColors.FromKnownColor (KnownColor.NavajoWhite); }
808 static public Color Navy {
809 get { return KnownColors.FromKnownColor (KnownColor.Navy); }
812 static public Color OldLace {
813 get { return KnownColors.FromKnownColor (KnownColor.OldLace); }
816 static public Color Olive {
817 get { return KnownColors.FromKnownColor (KnownColor.Olive); }
820 static public Color OliveDrab {
821 get { return KnownColors.FromKnownColor (KnownColor.OliveDrab); }
824 static public Color Orange {
825 get { return KnownColors.FromKnownColor (KnownColor.Orange); }
828 static public Color OrangeRed {
829 get { return KnownColors.FromKnownColor (KnownColor.OrangeRed); }
832 static public Color Orchid {
833 get { return KnownColors.FromKnownColor (KnownColor.Orchid); }
836 static public Color PaleGoldenrod {
837 get { return KnownColors.FromKnownColor (KnownColor.PaleGoldenrod); }
840 static public Color PaleGreen {
841 get { return KnownColors.FromKnownColor (KnownColor.PaleGreen); }
844 static public Color PaleTurquoise {
845 get { return KnownColors.FromKnownColor (KnownColor.PaleTurquoise); }
848 static public Color PaleVioletRed {
849 get { return KnownColors.FromKnownColor (KnownColor.PaleVioletRed); }
852 static public Color PapayaWhip {
853 get { return KnownColors.FromKnownColor (KnownColor.PapayaWhip); }
856 static public Color PeachPuff {
857 get { return KnownColors.FromKnownColor (KnownColor.PeachPuff); }
860 static public Color Peru {
861 get { return KnownColors.FromKnownColor (KnownColor.Peru); }
864 static public Color Pink {
865 get { return KnownColors.FromKnownColor (KnownColor.Pink); }
868 static public Color Plum {
869 get { return KnownColors.FromKnownColor (KnownColor.Plum); }
872 static public Color PowderBlue {
873 get { return KnownColors.FromKnownColor (KnownColor.PowderBlue); }
876 static public Color Purple {
877 get { return KnownColors.FromKnownColor (KnownColor.Purple); }
880 static public Color Red {
881 get { return KnownColors.FromKnownColor (KnownColor.Red); }
884 static public Color RosyBrown {
885 get { return KnownColors.FromKnownColor (KnownColor.RosyBrown); }
888 static public Color RoyalBlue {
889 get { return KnownColors.FromKnownColor (KnownColor.RoyalBlue); }
892 static public Color SaddleBrown {
893 get { return KnownColors.FromKnownColor (KnownColor.SaddleBrown); }
896 static public Color Salmon {
897 get { return KnownColors.FromKnownColor (KnownColor.Salmon); }
900 static public Color SandyBrown {
901 get { return KnownColors.FromKnownColor (KnownColor.SandyBrown); }
904 static public Color SeaGreen {
905 get { return KnownColors.FromKnownColor (KnownColor.SeaGreen); }
908 static public Color SeaShell {
909 get { return KnownColors.FromKnownColor (KnownColor.SeaShell); }
912 static public Color Sienna {
913 get { return KnownColors.FromKnownColor (KnownColor.Sienna); }
916 static public Color Silver {
917 get { return KnownColors.FromKnownColor (KnownColor.Silver); }
920 static public Color SkyBlue {
921 get { return KnownColors.FromKnownColor (KnownColor.SkyBlue); }
924 static public Color SlateBlue {
925 get { return KnownColors.FromKnownColor (KnownColor.SlateBlue); }
928 static public Color SlateGray {
929 get { return KnownColors.FromKnownColor (KnownColor.SlateGray); }
932 static public Color Snow {
933 get { return KnownColors.FromKnownColor (KnownColor.Snow); }
936 static public Color SpringGreen {
937 get { return KnownColors.FromKnownColor (KnownColor.SpringGreen); }
940 static public Color SteelBlue {
941 get { return KnownColors.FromKnownColor (KnownColor.SteelBlue); }
944 static public Color Tan {
945 get { return KnownColors.FromKnownColor (KnownColor.Tan); }
948 static public Color Teal {
949 get { return KnownColors.FromKnownColor (KnownColor.Teal); }
952 static public Color Thistle {
953 get { return KnownColors.FromKnownColor (KnownColor.Thistle); }
956 static public Color Tomato {
957 get { return KnownColors.FromKnownColor (KnownColor.Tomato); }
960 static public Color Turquoise {
961 get { return KnownColors.FromKnownColor (KnownColor.Turquoise); }
964 static public Color Violet {
965 get { return KnownColors.FromKnownColor (KnownColor.Violet); }
968 static public Color Wheat {
969 get { return KnownColors.FromKnownColor (KnownColor.Wheat); }
972 static public Color White {
973 get { return KnownColors.FromKnownColor (KnownColor.White); }
976 static public Color WhiteSmoke {
977 get { return KnownColors.FromKnownColor (KnownColor.WhiteSmoke); }
980 static public Color Yellow {
981 get { return KnownColors.FromKnownColor (KnownColor.Yellow); }
984 static public Color YellowGreen {
985 get { return KnownColors.FromKnownColor (KnownColor.YellowGreen); }