Color.cs 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476
  1. //
  2. // System.Drawing.Color.cs
  3. //
  4. // Authors:
  5. // Dennis Hayes ([email protected])
  6. // Ben Houston ([email protected])
  7. // Gonzalo Paniagua ([email protected])
  8. //
  9. // (C) 2002 Dennis Hayes
  10. // (c) 2002 Ximian, Inc. (http://www.ximiam.com)
  11. //
  12. // TODO: Are the static/non static functions declared correctly
  13. using System;
  14. using System.Collections;
  15. using System.Runtime.InteropServices;
  16. using System.ComponentModel;
  17. using System.Reflection;
  18. namespace System.Drawing
  19. {
  20. [TypeConverter(typeof(ColorConverter))]
  21. [ComVisible (true)]
  22. [Editor ("System.Drawing.Design.ColorEditor, " + Consts.AssemblySystem_Drawing_Design, typeof (System.Drawing.Design.UITypeEditor))]
  23. [Serializable]
  24. public struct Color
  25. {
  26. private static Hashtable namedColors;
  27. private static Hashtable systemColors;
  28. static Color [] knownColors;
  29. // Private transparancy (A) and R,G,B fields.
  30. byte a;
  31. byte r;
  32. byte g;
  33. byte b;
  34. private static string creatingColorNames = "creatingColorNames";
  35. // The specs also indicate that all three of these propities are true
  36. // if created with FromKnownColor or FromNamedColor, false otherwise (FromARGB).
  37. // Per Microsoft and ECMA specs these varibles are set by which constructor is used, not by their values.
  38. bool isknowncolor;
  39. bool isnamedcolor;
  40. bool issystemcolor;
  41. KnownColor knownColor;
  42. string myname;
  43. public string Name {
  44. get{
  45. return myname;
  46. }
  47. }
  48. public bool IsKnownColor {
  49. get{
  50. return isknowncolor;
  51. }
  52. }
  53. public bool IsSystemColor {
  54. get{
  55. return issystemcolor;
  56. }
  57. }
  58. public bool IsNamedColor {
  59. get{
  60. if (!isnamedcolor)
  61. return IsKnownColor;
  62. return isnamedcolor;
  63. }
  64. }
  65. public static Color FromArgb (int red, int green, int blue)
  66. {
  67. return FromArgb (255, red, green, blue);
  68. }
  69. public static Color FromArgb (int alpha, int red, int green, int blue)
  70. {
  71. CheckARGBValues (alpha, red, green, blue);
  72. Color color = new Color ();
  73. color.a = (byte) alpha;
  74. color.r = (byte) red;
  75. color.g = (byte) green;
  76. color.b = (byte) blue;
  77. color.myname = String.Empty;
  78. return color;
  79. }
  80. private static Color FromArgbNamed (int alpha, int red, int green, int blue, string name, KnownColor knownColor)
  81. {
  82. Color color = FromArgb (alpha, red, green, blue);
  83. color.isknowncolor = true;
  84. color.isnamedcolor = true;
  85. //color.issystemcolor = false; //???
  86. color.myname = name;
  87. // FIXME: here happens SEGFAULT.
  88. //color.knownColor = (KnownColor) Enum.Parse (typeof (KnownColor), name, false);
  89. color.knownColor = knownColor;
  90. return color;
  91. }
  92. internal static Color FromArgbSystem (int alpha, int red, int green, int blue, string name, KnownColor knownColor)
  93. {
  94. Color color = FromArgbNamed (alpha, red, green, blue, name, knownColor);
  95. color.issystemcolor = true;
  96. return color;
  97. }
  98. public int ToArgb()
  99. {
  100. return a << 24 | r << 16 | g << 8 | b;
  101. }
  102. public static Color FromArgb (int alpha, Color baseColor)
  103. {
  104. return FromArgb (alpha, baseColor.r, baseColor.g, baseColor.b);
  105. }
  106. public static Color FromArgb (int argb)
  107. {
  108. return FromArgb ((argb >> 24) & 0x0FF, (argb >> 16) & 0x0FF, (argb >> 8) & 0x0FF, argb & 0x0FF);
  109. }
  110. public static Color FromKnownColor (KnownColor c)
  111. {
  112. if (knownColors == null)
  113. FillColorNames ();
  114. if (c < KnownColor.ActiveBorder || c > KnownColor.YellowGreen) {
  115. // This is what it returns!
  116. Color d = FromArgb (0, 0, 0, 0);
  117. d.myname = c.ToString ();
  118. d.isnamedcolor = true;
  119. d.knownColor = c;
  120. return d;
  121. }
  122. return knownColors [(int) c];
  123. }
  124. private static Hashtable GetColorHashtableFromType (Type type)
  125. {
  126. Hashtable colorHash = new Hashtable (CaseInsensitiveHashCodeProvider.Default,
  127. CaseInsensitiveComparer.Default);
  128. PropertyInfo [] props = type.GetProperties ();
  129. foreach (PropertyInfo prop in props){
  130. if (prop.PropertyType != typeof (Color))
  131. continue;
  132. MethodInfo getget = prop.GetGetMethod ();
  133. if (getget == null || getget.IsStatic == false)
  134. continue;
  135. object o = prop.GetValue (null, null);
  136. colorHash.Add (prop.Name, o);
  137. Color c = (Color) o;
  138. knownColors [(int) c.knownColor] = c;
  139. }
  140. return colorHash;
  141. }
  142. private static void FillColorNames ()
  143. {
  144. if (systemColors != null)
  145. return;
  146. lock (creatingColorNames) {
  147. if (systemColors != null)
  148. return;
  149. knownColors = new Color [(int)KnownColor.YellowGreen + 1];
  150. Hashtable colorHash = GetColorHashtableFromType (typeof (Color));
  151. namedColors = colorHash;
  152. colorHash = GetColorHashtableFromType (typeof (SystemColors));
  153. systemColors = colorHash;
  154. }
  155. }
  156. public static Color FromName (string colorName)
  157. {
  158. object c = NamedColors [colorName];
  159. if (c == null) {
  160. c = SystemColors [colorName];
  161. if (c == null) {
  162. // This is what it returns!
  163. Color d = FromArgb (0, 0, 0, 0);
  164. d.myname = colorName;
  165. d.isnamedcolor = true;
  166. c = d;
  167. }
  168. }
  169. return (Color) c;
  170. }
  171. internal static Hashtable NamedColors
  172. {
  173. get {
  174. FillColorNames ();
  175. return namedColors;
  176. }
  177. }
  178. internal static Hashtable SystemColors
  179. {
  180. get {
  181. FillColorNames ();
  182. return systemColors;
  183. }
  184. }
  185. // -----------------------
  186. // Public Shared Members
  187. // -----------------------
  188. /// <summary>
  189. /// Empty Shared Field
  190. /// </summary>
  191. ///
  192. /// <remarks>
  193. /// An uninitialized Color Structure
  194. /// </remarks>
  195. public static readonly Color Empty;
  196. /// <summary>
  197. /// Equality Operator
  198. /// </summary>
  199. ///
  200. /// <remarks>
  201. /// Compares two Color objects. The return value is
  202. /// based on the equivalence of the A,R,G,B properties
  203. /// of the two Colors.
  204. /// </remarks>
  205. public static bool operator == (Color colorA, Color colorB)
  206. {
  207. return ((colorA.a == colorB.a) && (colorA.r == colorB.r)
  208. && (colorA.g == colorB.g) && (colorA.b == colorB.b));
  209. }
  210. /// <summary>
  211. /// Inequality Operator
  212. /// </summary>
  213. ///
  214. /// <remarks>
  215. /// Compares two Color objects. The return value is
  216. /// based on the equivalence of the A,R,G,B properties
  217. /// of the two colors.
  218. /// </remarks>
  219. public static bool operator != (Color colorA, Color colorB)
  220. {
  221. return ((colorA.a != colorB.a) || (colorA.r != colorB.r)
  222. || (colorA.g != colorB.g) || (colorA.b != colorB.b));
  223. }
  224. public float GetBrightness (){
  225. // Intensity is the normalized sum of the three RGB values.;
  226. return ((float)(r + g + b))/(255*3);
  227. }
  228. public float GetSaturation (){
  229. // S = 1 - I * Min(r,g,b)
  230. return (255 -
  231. (((float)(r + g +b))/3)*Math.Min(r,Math.Min(g,b))
  232. )/255;
  233. }
  234. public float GetHue (){
  235. float top = ((float)(2*r-g-b))/(2*255);
  236. float bottom = (float)Math.Sqrt(((r-g)*(r-g) + (r-b)*(g-b))/255);
  237. return (float)Math.Acos(top/bottom);
  238. }
  239. // -----------------------
  240. // Public Instance Members
  241. // -----------------------
  242. /// <summary>
  243. /// ToKnownColor method
  244. /// </summary>
  245. ///
  246. /// <remarks>
  247. /// Returns the KnownColor enum value for this color, 0 if is not known.
  248. /// </remarks>
  249. public KnownColor ToKnownColor ()
  250. {
  251. return knownColor;
  252. }
  253. /// <summary>
  254. /// IsEmpty Property
  255. /// </summary>
  256. ///
  257. /// <remarks>
  258. /// Indicates transparent black. R,G,B = 0; A=0?
  259. /// </remarks>
  260. public bool IsEmpty
  261. {
  262. get {
  263. return (a + r + g + b) == 0;
  264. }
  265. }
  266. /// <summary>
  267. /// A Property
  268. /// </summary>
  269. ///
  270. /// <remarks>
  271. /// The transparancy of the Color.
  272. /// </remarks>
  273. public byte A
  274. {
  275. get {
  276. return a;
  277. }
  278. }
  279. /// <summary>
  280. /// R Property
  281. /// </summary>
  282. ///
  283. /// <remarks>
  284. /// The red value of the Color.
  285. /// </remarks>
  286. public byte R
  287. {
  288. get {
  289. return r;
  290. }
  291. }
  292. /// <summary>
  293. /// G Property
  294. /// </summary>
  295. ///
  296. /// <remarks>
  297. /// The green value of the Color.
  298. /// </remarks>
  299. public byte G
  300. {
  301. get {
  302. return g;
  303. }
  304. }
  305. /// <summary>
  306. /// B Property
  307. /// </summary>
  308. ///
  309. /// <remarks>
  310. /// The blue value of the Color.
  311. /// </remarks>
  312. public byte B
  313. {
  314. get {
  315. return b;
  316. }
  317. }
  318. /// <summary>
  319. /// Equals Method
  320. /// </summary>
  321. ///
  322. /// <remarks>
  323. /// Checks equivalence of this Color and another object.
  324. /// </remarks>
  325. public override bool Equals (object o)
  326. {
  327. if (!(o is Color))
  328. return false;
  329. Color c = (Color) o;
  330. if (c.r == r && c.g == g && c.b == b) {
  331. if (myname != null || c.myname != null)
  332. return (myname == c.myname);
  333. return true;
  334. }
  335. return false;
  336. }
  337. /// <summary>
  338. /// Reference Equals Method
  339. /// Is commented out because this is handled by the base class.
  340. /// TODO: Is it correct to let the base class handel reference equals
  341. /// </summary>
  342. ///
  343. /// <remarks>
  344. /// Checks equivalence of this Color and another object.
  345. /// </remarks>
  346. //public bool ReferenceEquals (object o)
  347. //{
  348. // if (!(o is Color))return false;
  349. // return (this == (Color) o);
  350. //}
  351. /// <summary>
  352. /// GetHashCode Method
  353. /// </summary>
  354. ///
  355. /// <remarks>
  356. /// Calculates a hashing value.
  357. /// </remarks>
  358. public override int GetHashCode ()
  359. {
  360. return ToArgb().GetHashCode();
  361. }
  362. /// <summary>
  363. /// ToString Method
  364. /// </summary>
  365. ///
  366. /// <remarks>
  367. /// Formats the Color as a string in ARGB notation.
  368. /// </remarks>
  369. public override string ToString ()
  370. {
  371. if (myname != "")
  372. return "Color [" + myname + "]";
  373. return String.Format ("Color [A={0}, R={1}, G={2}, B={3}]", a, r, g, b);
  374. }
  375. private static void CheckRGBValues (int red,int green,int blue)
  376. {
  377. if( (red > 255) || (red < 0))
  378. throw new System.ArgumentOutOfRangeException
  379. ("red",red,"Value must be in the range 0 - 255");
  380. if( (green > 255) || (green < 0))
  381. throw new System.ArgumentOutOfRangeException
  382. ("green",green,"Value must be in the range 0 - 255");
  383. if( (blue > 255) || (blue < 0))
  384. throw new System.ArgumentOutOfRangeException
  385. ("blue",blue,"Value must be in the range 0 - 255");
  386. }
  387. private static void CheckARGBValues (int alpha,int red,int green,int blue)
  388. {
  389. if( (alpha > 255) || (alpha < 0))
  390. throw new System.ArgumentOutOfRangeException
  391. ("alpha",alpha,"Value must be in the range 0 - 255");
  392. CheckRGBValues(red,green,blue);
  393. }
  394. //Documentation, do not remove!
  395. //This is the program that was used to generate the C# source code below.
  396. //using System;
  397. //using System.Diagnostics;
  398. //using System.Drawing;
  399. //using System.Reflection;
  400. //public class m {
  401. //static void Main(string[] args)
  402. //{
  403. // Type cType = typeof (Color);
  404. // PropertyInfo [] properties = cType.GetProperties ();
  405. // foreach (PropertyInfo property in properties) {
  406. // MethodInfo method = property.GetGetMethod();
  407. // if (method != null && method.IsStatic && method.ReturnType == cType) {
  408. // Color c = (Color) method.Invoke( null, new object[0] );
  409. // Console.WriteLine("static public Color " + property.Name);
  410. // Console.WriteLine("{\t\n\tget {");
  411. // Console.WriteLine("\t\treturn Color.FromArgbNamed ({0}, {1}, {2}, {3}, \"{4}\", KnownColor.{4});",
  412. // c.A, c.R, c.G, c.B, property.Name);
  413. // Console.WriteLine("\t}");
  414. // Console.WriteLine("}\n");
  415. // }
  416. // }
  417. //}
  418. //}
  419. static public Color Transparent
  420. {
  421. get {
  422. return Color.FromArgbNamed (0, 255, 255, 255, "Transparent", KnownColor.Transparent);
  423. }
  424. }
  425. static public Color AliceBlue
  426. {
  427. get {
  428. return Color.FromArgbNamed (255, 240, 248, 255, "AliceBlue", KnownColor.AliceBlue);
  429. }
  430. }
  431. static public Color AntiqueWhite
  432. {
  433. get {
  434. return Color.FromArgbNamed (255, 250, 235, 215, "AntiqueWhite", KnownColor.AntiqueWhite);
  435. }
  436. }
  437. static public Color Aqua
  438. {
  439. get {
  440. return Color.FromArgbNamed (255, 0, 255, 255, "Aqua", KnownColor.Aqua);
  441. }
  442. }
  443. static public Color Aquamarine
  444. {
  445. get {
  446. return Color.FromArgbNamed (255, 127, 255, 212, "Aquamarine", KnownColor.Aquamarine);
  447. }
  448. }
  449. static public Color Azure
  450. {
  451. get {
  452. return Color.FromArgbNamed (255, 240, 255, 255, "Azure", KnownColor.Azure);
  453. }
  454. }
  455. static public Color Beige
  456. {
  457. get {
  458. return Color.FromArgbNamed (255, 245, 245, 220, "Beige", KnownColor.Beige);
  459. }
  460. }
  461. static public Color Bisque
  462. {
  463. get {
  464. return Color.FromArgbNamed (255, 255, 228, 196, "Bisque", KnownColor.Bisque);
  465. }
  466. }
  467. static public Color Black
  468. {
  469. get {
  470. return Color.FromArgbNamed (255, 0, 0, 0, "Black", KnownColor.Black);
  471. }
  472. }
  473. static public Color BlanchedAlmond
  474. {
  475. get {
  476. return Color.FromArgbNamed (255, 255, 235, 205, "BlanchedAlmond", KnownColor.BlanchedAlmond);
  477. }
  478. }
  479. static public Color Blue
  480. {
  481. get {
  482. return Color.FromArgbNamed (255, 0, 0, 255, "Blue", KnownColor.Blue);
  483. }
  484. }
  485. static public Color BlueViolet
  486. {
  487. get {
  488. return Color.FromArgbNamed (255, 138, 43, 226, "BlueViolet", KnownColor.BlueViolet);
  489. }
  490. }
  491. static public Color Brown
  492. {
  493. get {
  494. return Color.FromArgbNamed (255, 165, 42, 42, "Brown", KnownColor.Brown);
  495. }
  496. }
  497. static public Color BurlyWood
  498. {
  499. get {
  500. return Color.FromArgbNamed (255, 222, 184, 135, "BurlyWood", KnownColor.BurlyWood);
  501. }
  502. }
  503. static public Color CadetBlue
  504. {
  505. get {
  506. return Color.FromArgbNamed (255, 95, 158, 160, "CadetBlue", KnownColor.CadetBlue);
  507. }
  508. }
  509. static public Color Chartreuse
  510. {
  511. get {
  512. return Color.FromArgbNamed (255, 127, 255, 0, "Chartreuse", KnownColor.Chartreuse);
  513. }
  514. }
  515. static public Color Chocolate
  516. {
  517. get {
  518. return Color.FromArgbNamed (255, 210, 105, 30, "Chocolate", KnownColor.Chocolate);
  519. }
  520. }
  521. static public Color Coral
  522. {
  523. get {
  524. return Color.FromArgbNamed (255, 255, 127, 80, "Coral", KnownColor.Coral);
  525. }
  526. }
  527. static public Color CornflowerBlue
  528. {
  529. get {
  530. return Color.FromArgbNamed (255, 100, 149, 237, "CornflowerBlue", KnownColor.CornflowerBlue);
  531. }
  532. }
  533. static public Color Cornsilk
  534. {
  535. get {
  536. return Color.FromArgbNamed (255, 255, 248, 220, "Cornsilk", KnownColor.Cornsilk);
  537. }
  538. }
  539. static public Color Crimson
  540. {
  541. get {
  542. return Color.FromArgbNamed (255, 220, 20, 60, "Crimson", KnownColor.Crimson);
  543. }
  544. }
  545. static public Color Cyan
  546. {
  547. get {
  548. return Color.FromArgbNamed (255, 0, 255, 255, "Cyan", KnownColor.Cyan);
  549. }
  550. }
  551. static public Color DarkBlue
  552. {
  553. get {
  554. return Color.FromArgbNamed (255, 0, 0, 139, "DarkBlue", KnownColor.DarkBlue);
  555. }
  556. }
  557. static public Color DarkCyan
  558. {
  559. get {
  560. return Color.FromArgbNamed (255, 0, 139, 139, "DarkCyan", KnownColor.DarkCyan);
  561. }
  562. }
  563. static public Color DarkGoldenrod
  564. {
  565. get {
  566. return Color.FromArgbNamed (255, 184, 134, 11, "DarkGoldenrod", KnownColor.DarkGoldenrod);
  567. }
  568. }
  569. static public Color DarkGray
  570. {
  571. get {
  572. return Color.FromArgbNamed (255, 169, 169, 169, "DarkGray", KnownColor.DarkGray);
  573. }
  574. }
  575. static public Color DarkGreen
  576. {
  577. get {
  578. return Color.FromArgbNamed (255, 0, 100, 0, "DarkGreen", KnownColor.DarkGreen);
  579. }
  580. }
  581. static public Color DarkKhaki
  582. {
  583. get {
  584. return Color.FromArgbNamed (255, 189, 183, 107, "DarkKhaki", KnownColor.DarkKhaki);
  585. }
  586. }
  587. static public Color DarkMagenta
  588. {
  589. get {
  590. return Color.FromArgbNamed (255, 139, 0, 139, "DarkMagenta", KnownColor.DarkMagenta);
  591. }
  592. }
  593. static public Color DarkOliveGreen
  594. {
  595. get {
  596. return Color.FromArgbNamed (255, 85, 107, 47, "DarkOliveGreen", KnownColor.DarkOliveGreen);
  597. }
  598. }
  599. static public Color DarkOrange
  600. {
  601. get {
  602. return Color.FromArgbNamed (255, 255, 140, 0, "DarkOrange", KnownColor.DarkOrange);
  603. }
  604. }
  605. static public Color DarkOrchid
  606. {
  607. get {
  608. return Color.FromArgbNamed (255, 153, 50, 204, "DarkOrchid", KnownColor.DarkOrchid);
  609. }
  610. }
  611. static public Color DarkRed
  612. {
  613. get {
  614. return Color.FromArgbNamed (255, 139, 0, 0, "DarkRed", KnownColor.DarkRed);
  615. }
  616. }
  617. static public Color DarkSalmon
  618. {
  619. get {
  620. return Color.FromArgbNamed (255, 233, 150, 122, "DarkSalmon", KnownColor.DarkSalmon);
  621. }
  622. }
  623. static public Color DarkSeaGreen
  624. {
  625. get {
  626. return Color.FromArgbNamed (255, 143, 188, 139, "DarkSeaGreen", KnownColor.DarkSeaGreen);
  627. }
  628. }
  629. static public Color DarkSlateBlue
  630. {
  631. get {
  632. return Color.FromArgbNamed (255, 72, 61, 139, "DarkSlateBlue", KnownColor.DarkSlateBlue);
  633. }
  634. }
  635. static public Color DarkSlateGray
  636. {
  637. get {
  638. return Color.FromArgbNamed (255, 47, 79, 79, "DarkSlateGray", KnownColor.DarkSlateGray);
  639. }
  640. }
  641. static public Color DarkTurquoise
  642. {
  643. get {
  644. return Color.FromArgbNamed (255, 0, 206, 209, "DarkTurquoise", KnownColor.DarkTurquoise);
  645. }
  646. }
  647. static public Color DarkViolet
  648. {
  649. get {
  650. return Color.FromArgbNamed (255, 148, 0, 211, "DarkViolet", KnownColor.DarkViolet);
  651. }
  652. }
  653. static public Color DeepPink
  654. {
  655. get {
  656. return Color.FromArgbNamed (255, 255, 20, 147, "DeepPink", KnownColor.DeepPink);
  657. }
  658. }
  659. static public Color DeepSkyBlue
  660. {
  661. get {
  662. return Color.FromArgbNamed (255, 0, 191, 255, "DeepSkyBlue", KnownColor.DeepSkyBlue);
  663. }
  664. }
  665. static public Color DimGray
  666. {
  667. get {
  668. return Color.FromArgbNamed (255, 105, 105, 105, "DimGray", KnownColor.DimGray);
  669. }
  670. }
  671. static public Color DodgerBlue
  672. {
  673. get {
  674. return Color.FromArgbNamed (255, 30, 144, 255, "DodgerBlue", KnownColor.DodgerBlue);
  675. }
  676. }
  677. static public Color Firebrick
  678. {
  679. get {
  680. return Color.FromArgbNamed (255, 178, 34, 34, "Firebrick", KnownColor.Firebrick);
  681. }
  682. }
  683. static public Color FloralWhite
  684. {
  685. get {
  686. return Color.FromArgbNamed (255, 255, 250, 240, "FloralWhite", KnownColor.FloralWhite);
  687. }
  688. }
  689. static public Color ForestGreen
  690. {
  691. get {
  692. return Color.FromArgbNamed (255, 34, 139, 34, "ForestGreen", KnownColor.ForestGreen);
  693. }
  694. }
  695. static public Color Fuchsia
  696. {
  697. get {
  698. return Color.FromArgbNamed (255, 255, 0, 255, "Fuchsia", KnownColor.Fuchsia);
  699. }
  700. }
  701. static public Color Gainsboro
  702. {
  703. get {
  704. return Color.FromArgbNamed (255, 220, 220, 220, "Gainsboro", KnownColor.Gainsboro);
  705. }
  706. }
  707. static public Color GhostWhite
  708. {
  709. get {
  710. return Color.FromArgbNamed (255, 248, 248, 255, "GhostWhite", KnownColor.GhostWhite);
  711. }
  712. }
  713. static public Color Gold
  714. {
  715. get {
  716. return Color.FromArgbNamed (255, 255, 215, 0, "Gold", KnownColor.Gold);
  717. }
  718. }
  719. static public Color Goldenrod
  720. {
  721. get {
  722. return Color.FromArgbNamed (255, 218, 165, 32, "Goldenrod", KnownColor.Goldenrod);
  723. }
  724. }
  725. static public Color Gray
  726. {
  727. get {
  728. return Color.FromArgbNamed (255, 128, 128, 128, "Gray", KnownColor.Gray);
  729. }
  730. }
  731. static public Color Green
  732. {
  733. get {
  734. return Color.FromArgbNamed (255, 0, 128, 0, "Green", KnownColor.Green);
  735. }
  736. }
  737. static public Color GreenYellow
  738. {
  739. get {
  740. return Color.FromArgbNamed (255, 173, 255, 47, "GreenYellow", KnownColor.GreenYellow);
  741. }
  742. }
  743. static public Color Honeydew
  744. {
  745. get {
  746. return Color.FromArgbNamed (255, 240, 255, 240, "Honeydew", KnownColor.Honeydew);
  747. }
  748. }
  749. static public Color HotPink
  750. {
  751. get {
  752. return Color.FromArgbNamed (255, 255, 105, 180, "HotPink", KnownColor.HotPink);
  753. }
  754. }
  755. static public Color IndianRed
  756. {
  757. get {
  758. return Color.FromArgbNamed (255, 205, 92, 92, "IndianRed", KnownColor.IndianRed);
  759. }
  760. }
  761. static public Color Indigo
  762. {
  763. get {
  764. return Color.FromArgbNamed (255, 75, 0, 130, "Indigo", KnownColor.Indigo);
  765. }
  766. }
  767. static public Color Ivory
  768. {
  769. get {
  770. return Color.FromArgbNamed (255, 255, 255, 240, "Ivory", KnownColor.Ivory);
  771. }
  772. }
  773. static public Color Khaki
  774. {
  775. get {
  776. return Color.FromArgbNamed (255, 240, 230, 140, "Khaki", KnownColor.Khaki);
  777. }
  778. }
  779. static public Color Lavender
  780. {
  781. get {
  782. return Color.FromArgbNamed (255, 230, 230, 250, "Lavender", KnownColor.Lavender);
  783. }
  784. }
  785. static public Color LavenderBlush
  786. {
  787. get {
  788. return Color.FromArgbNamed (255, 255, 240, 245, "LavenderBlush", KnownColor.LavenderBlush);
  789. }
  790. }
  791. static public Color LawnGreen
  792. {
  793. get {
  794. return Color.FromArgbNamed (255, 124, 252, 0, "LawnGreen", KnownColor.LawnGreen);
  795. }
  796. }
  797. static public Color LemonChiffon
  798. {
  799. get {
  800. return Color.FromArgbNamed (255, 255, 250, 205, "LemonChiffon", KnownColor.LemonChiffon);
  801. }
  802. }
  803. static public Color LightBlue
  804. {
  805. get {
  806. return Color.FromArgbNamed (255, 173, 216, 230, "LightBlue", KnownColor.LightBlue);
  807. }
  808. }
  809. static public Color LightCoral
  810. {
  811. get {
  812. return Color.FromArgbNamed (255, 240, 128, 128, "LightCoral", KnownColor.LightCoral);
  813. }
  814. }
  815. static public Color LightCyan
  816. {
  817. get {
  818. return Color.FromArgbNamed (255, 224, 255, 255, "LightCyan", KnownColor.LightCyan);
  819. }
  820. }
  821. static public Color LightGoldenrodYellow
  822. {
  823. get {
  824. return Color.FromArgbNamed (255, 250, 250, 210, "LightGoldenrodYellow", KnownColor.LightGoldenrodYellow);
  825. }
  826. }
  827. static public Color LightGreen
  828. {
  829. get {
  830. return Color.FromArgbNamed (255, 144, 238, 144, "LightGreen", KnownColor.LightGreen);
  831. }
  832. }
  833. static public Color LightGray
  834. {
  835. get {
  836. return Color.FromArgbNamed (255, 211, 211, 211, "LightGray", KnownColor.LightGray);
  837. }
  838. }
  839. static public Color LightPink
  840. {
  841. get {
  842. return Color.FromArgbNamed (255, 255, 182, 193, "LightPink", KnownColor.LightPink);
  843. }
  844. }
  845. static public Color LightSalmon
  846. {
  847. get {
  848. return Color.FromArgbNamed (255, 255, 160, 122, "LightSalmon", KnownColor.LightSalmon);
  849. }
  850. }
  851. static public Color LightSeaGreen
  852. {
  853. get {
  854. return Color.FromArgbNamed (255, 32, 178, 170, "LightSeaGreen", KnownColor.LightSeaGreen);
  855. }
  856. }
  857. static public Color LightSkyBlue
  858. {
  859. get {
  860. return Color.FromArgbNamed (255, 135, 206, 250, "LightSkyBlue", KnownColor.LightSkyBlue);
  861. }
  862. }
  863. static public Color LightSlateGray
  864. {
  865. get {
  866. return Color.FromArgbNamed (255, 119, 136, 153, "LightSlateGray", KnownColor.LightSlateGray);
  867. }
  868. }
  869. static public Color LightSteelBlue
  870. {
  871. get {
  872. return Color.FromArgbNamed (255, 176, 196, 222, "LightSteelBlue", KnownColor.LightSteelBlue);
  873. }
  874. }
  875. static public Color LightYellow
  876. {
  877. get {
  878. return Color.FromArgbNamed (255, 255, 255, 224, "LightYellow", KnownColor.LightYellow);
  879. }
  880. }
  881. static public Color Lime
  882. {
  883. get {
  884. return Color.FromArgbNamed (255, 0, 255, 0, "Lime", KnownColor.Lime);
  885. }
  886. }
  887. static public Color LimeGreen
  888. {
  889. get {
  890. return Color.FromArgbNamed (255, 50, 205, 50, "LimeGreen", KnownColor.LimeGreen);
  891. }
  892. }
  893. static public Color Linen
  894. {
  895. get {
  896. return Color.FromArgbNamed (255, 250, 240, 230, "Linen", KnownColor.Linen);
  897. }
  898. }
  899. static public Color Magenta
  900. {
  901. get {
  902. return Color.FromArgbNamed (255, 255, 0, 255, "Magenta", KnownColor.Magenta);
  903. }
  904. }
  905. static public Color Maroon
  906. {
  907. get {
  908. return Color.FromArgbNamed (255, 128, 0, 0, "Maroon", KnownColor.Maroon);
  909. }
  910. }
  911. static public Color MediumAquamarine
  912. {
  913. get {
  914. return Color.FromArgbNamed (255, 102, 205, 170, "MediumAquamarine", KnownColor.MediumAquamarine);
  915. }
  916. }
  917. static public Color MediumBlue
  918. {
  919. get {
  920. return Color.FromArgbNamed (255, 0, 0, 205, "MediumBlue", KnownColor.MediumBlue);
  921. }
  922. }
  923. static public Color MediumOrchid
  924. {
  925. get {
  926. return Color.FromArgbNamed (255, 186, 85, 211, "MediumOrchid", KnownColor.MediumOrchid);
  927. }
  928. }
  929. static public Color MediumPurple
  930. {
  931. get {
  932. return Color.FromArgbNamed (255, 147, 112, 219, "MediumPurple", KnownColor.MediumPurple);
  933. }
  934. }
  935. static public Color MediumSeaGreen
  936. {
  937. get {
  938. return Color.FromArgbNamed (255, 60, 179, 113, "MediumSeaGreen", KnownColor.MediumSeaGreen);
  939. }
  940. }
  941. static public Color MediumSlateBlue
  942. {
  943. get {
  944. return Color.FromArgbNamed (255, 123, 104, 238, "MediumSlateBlue", KnownColor.MediumSlateBlue);
  945. }
  946. }
  947. static public Color MediumSpringGreen
  948. {
  949. get {
  950. return Color.FromArgbNamed (255, 0, 250, 154, "MediumSpringGreen", KnownColor.MediumSpringGreen);
  951. }
  952. }
  953. static public Color MediumTurquoise
  954. {
  955. get {
  956. return Color.FromArgbNamed (255, 72, 209, 204, "MediumTurquoise", KnownColor.MediumTurquoise);
  957. }
  958. }
  959. static public Color MediumVioletRed
  960. {
  961. get {
  962. return Color.FromArgbNamed (255, 199, 21, 133, "MediumVioletRed", KnownColor.MediumVioletRed);
  963. }
  964. }
  965. static public Color MidnightBlue
  966. {
  967. get {
  968. return Color.FromArgbNamed (255, 25, 25, 112, "MidnightBlue", KnownColor.MidnightBlue);
  969. }
  970. }
  971. static public Color MintCream
  972. {
  973. get {
  974. return Color.FromArgbNamed (255, 245, 255, 250, "MintCream", KnownColor.MintCream);
  975. }
  976. }
  977. static public Color MistyRose
  978. {
  979. get {
  980. return Color.FromArgbNamed (255, 255, 228, 225, "MistyRose", KnownColor.MistyRose);
  981. }
  982. }
  983. static public Color Moccasin
  984. {
  985. get {
  986. return Color.FromArgbNamed (255, 255, 228, 181, "Moccasin", KnownColor.Moccasin);
  987. }
  988. }
  989. static public Color NavajoWhite
  990. {
  991. get {
  992. return Color.FromArgbNamed (255, 255, 222, 173, "NavajoWhite", KnownColor.NavajoWhite);
  993. }
  994. }
  995. static public Color Navy
  996. {
  997. get {
  998. return Color.FromArgbNamed (255, 0, 0, 128, "Navy", KnownColor.Navy);
  999. }
  1000. }
  1001. static public Color OldLace
  1002. {
  1003. get {
  1004. return Color.FromArgbNamed (255, 253, 245, 230, "OldLace", KnownColor.OldLace);
  1005. }
  1006. }
  1007. static public Color Olive
  1008. {
  1009. get {
  1010. return Color.FromArgbNamed (255, 128, 128, 0, "Olive", KnownColor.Olive);
  1011. }
  1012. }
  1013. static public Color OliveDrab
  1014. {
  1015. get {
  1016. return Color.FromArgbNamed (255, 107, 142, 35, "OliveDrab", KnownColor.OliveDrab);
  1017. }
  1018. }
  1019. static public Color Orange
  1020. {
  1021. get {
  1022. return Color.FromArgbNamed (255, 255, 165, 0, "Orange", KnownColor.Orange);
  1023. }
  1024. }
  1025. static public Color OrangeRed
  1026. {
  1027. get {
  1028. return Color.FromArgbNamed (255, 255, 69, 0, "OrangeRed", KnownColor.OrangeRed);
  1029. }
  1030. }
  1031. static public Color Orchid
  1032. {
  1033. get {
  1034. return Color.FromArgbNamed (255, 218, 112, 214, "Orchid", KnownColor.Orchid);
  1035. }
  1036. }
  1037. static public Color PaleGoldenrod
  1038. {
  1039. get {
  1040. return Color.FromArgbNamed (255, 238, 232, 170, "PaleGoldenrod", KnownColor.PaleGoldenrod);
  1041. }
  1042. }
  1043. static public Color PaleGreen
  1044. {
  1045. get {
  1046. return Color.FromArgbNamed (255, 152, 251, 152, "PaleGreen", KnownColor.PaleGreen);
  1047. }
  1048. }
  1049. static public Color PaleTurquoise
  1050. {
  1051. get {
  1052. return Color.FromArgbNamed (255, 175, 238, 238, "PaleTurquoise", KnownColor.PaleTurquoise);
  1053. }
  1054. }
  1055. static public Color PaleVioletRed
  1056. {
  1057. get {
  1058. return Color.FromArgbNamed (255, 219, 112, 147, "PaleVioletRed", KnownColor.PaleVioletRed);
  1059. }
  1060. }
  1061. static public Color PapayaWhip
  1062. {
  1063. get {
  1064. return Color.FromArgbNamed (255, 255, 239, 213, "PapayaWhip", KnownColor.PapayaWhip);
  1065. }
  1066. }
  1067. static public Color PeachPuff
  1068. {
  1069. get {
  1070. return Color.FromArgbNamed (255, 255, 218, 185, "PeachPuff", KnownColor.PeachPuff);
  1071. }
  1072. }
  1073. static public Color Peru
  1074. {
  1075. get {
  1076. return Color.FromArgbNamed (255, 205, 133, 63, "Peru", KnownColor.Peru);
  1077. }
  1078. }
  1079. static public Color Pink
  1080. {
  1081. get {
  1082. return Color.FromArgbNamed (255, 255, 192, 203, "Pink", KnownColor.Pink);
  1083. }
  1084. }
  1085. static public Color Plum
  1086. {
  1087. get {
  1088. return Color.FromArgbNamed (255, 221, 160, 221, "Plum", KnownColor.Plum);
  1089. }
  1090. }
  1091. static public Color PowderBlue
  1092. {
  1093. get {
  1094. return Color.FromArgbNamed (255, 176, 224, 230, "PowderBlue", KnownColor.PowderBlue);
  1095. }
  1096. }
  1097. static public Color Purple
  1098. {
  1099. get {
  1100. return Color.FromArgbNamed (255, 128, 0, 128, "Purple", KnownColor.Purple);
  1101. }
  1102. }
  1103. static public Color Red
  1104. {
  1105. get {
  1106. return Color.FromArgbNamed (255, 255, 0, 0, "Red", KnownColor.Red);
  1107. }
  1108. }
  1109. static public Color RosyBrown
  1110. {
  1111. get {
  1112. return Color.FromArgbNamed (255, 188, 143, 143, "RosyBrown", KnownColor.RosyBrown);
  1113. }
  1114. }
  1115. static public Color RoyalBlue
  1116. {
  1117. get {
  1118. return Color.FromArgbNamed (255, 65, 105, 225, "RoyalBlue", KnownColor.RoyalBlue);
  1119. }
  1120. }
  1121. static public Color SaddleBrown
  1122. {
  1123. get {
  1124. return Color.FromArgbNamed (255, 139, 69, 19, "SaddleBrown", KnownColor.SaddleBrown);
  1125. }
  1126. }
  1127. static public Color Salmon
  1128. {
  1129. get {
  1130. return Color.FromArgbNamed (255, 250, 128, 114, "Salmon", KnownColor.Salmon);
  1131. }
  1132. }
  1133. static public Color SandyBrown
  1134. {
  1135. get {
  1136. return Color.FromArgbNamed (255, 244, 164, 96, "SandyBrown", KnownColor.SandyBrown);
  1137. }
  1138. }
  1139. static public Color SeaGreen
  1140. {
  1141. get {
  1142. return Color.FromArgbNamed (255, 46, 139, 87, "SeaGreen", KnownColor.SeaGreen);
  1143. }
  1144. }
  1145. static public Color SeaShell
  1146. {
  1147. get {
  1148. return Color.FromArgbNamed (255, 255, 245, 238, "SeaShell", KnownColor.SeaShell);
  1149. }
  1150. }
  1151. static public Color Sienna
  1152. {
  1153. get {
  1154. return Color.FromArgbNamed (255, 160, 82, 45, "Sienna", KnownColor.Sienna);
  1155. }
  1156. }
  1157. static public Color Silver
  1158. {
  1159. get {
  1160. return Color.FromArgbNamed (255, 192, 192, 192, "Silver", KnownColor.Silver);
  1161. }
  1162. }
  1163. static public Color SkyBlue
  1164. {
  1165. get {
  1166. return Color.FromArgbNamed (255, 135, 206, 235, "SkyBlue", KnownColor.SkyBlue);
  1167. }
  1168. }
  1169. static public Color SlateBlue
  1170. {
  1171. get {
  1172. return Color.FromArgbNamed (255, 106, 90, 205, "SlateBlue", KnownColor.SlateBlue);
  1173. }
  1174. }
  1175. static public Color SlateGray
  1176. {
  1177. get {
  1178. return Color.FromArgbNamed (255, 112, 128, 144, "SlateGray", KnownColor.SlateGray);
  1179. }
  1180. }
  1181. static public Color Snow
  1182. {
  1183. get {
  1184. return Color.FromArgbNamed (255, 255, 250, 250, "Snow", KnownColor.Snow);
  1185. }
  1186. }
  1187. static public Color SpringGreen
  1188. {
  1189. get {
  1190. return Color.FromArgbNamed (255, 0, 255, 127, "SpringGreen", KnownColor.SpringGreen);
  1191. }
  1192. }
  1193. static public Color SteelBlue
  1194. {
  1195. get {
  1196. return Color.FromArgbNamed (255, 70, 130, 180, "SteelBlue", KnownColor.SteelBlue);
  1197. }
  1198. }
  1199. static public Color Tan
  1200. {
  1201. get {
  1202. return Color.FromArgbNamed (255, 210, 180, 140, "Tan", KnownColor.Tan);
  1203. }
  1204. }
  1205. static public Color Teal
  1206. {
  1207. get {
  1208. return Color.FromArgbNamed (255, 0, 128, 128, "Teal", KnownColor.Teal);
  1209. }
  1210. }
  1211. static public Color Thistle
  1212. {
  1213. get {
  1214. return Color.FromArgbNamed (255, 216, 191, 216, "Thistle", KnownColor.Thistle);
  1215. }
  1216. }
  1217. static public Color Tomato
  1218. {
  1219. get {
  1220. return Color.FromArgbNamed (255, 255, 99, 71, "Tomato", KnownColor.Tomato);
  1221. }
  1222. }
  1223. static public Color Turquoise
  1224. {
  1225. get {
  1226. return Color.FromArgbNamed (255, 64, 224, 208, "Turquoise", KnownColor.Turquoise);
  1227. }
  1228. }
  1229. static public Color Violet
  1230. {
  1231. get {
  1232. return Color.FromArgbNamed (255, 238, 130, 238, "Violet", KnownColor.Violet);
  1233. }
  1234. }
  1235. static public Color Wheat
  1236. {
  1237. get {
  1238. return Color.FromArgbNamed (255, 245, 222, 179, "Wheat", KnownColor.Wheat);
  1239. }
  1240. }
  1241. static public Color White
  1242. {
  1243. get {
  1244. return Color.FromArgbNamed (255, 255, 255, 255, "White", KnownColor.White);
  1245. }
  1246. }
  1247. static public Color WhiteSmoke
  1248. {
  1249. get {
  1250. return Color.FromArgbNamed (255, 245, 245, 245, "WhiteSmoke", KnownColor.WhiteSmoke);
  1251. }
  1252. }
  1253. static public Color Yellow
  1254. {
  1255. get {
  1256. return Color.FromArgbNamed (255, 255, 255, 0, "Yellow", KnownColor.Yellow);
  1257. }
  1258. }
  1259. static public Color YellowGreen
  1260. {
  1261. get {
  1262. return Color.FromArgbNamed (255, 154, 205, 50, "YellowGreen", KnownColor.YellowGreen);
  1263. }
  1264. }
  1265. }
  1266. }