Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to generate random color names in C#

Tags:

c#

random

colors

I need to generate random color names e.g. "Red", "White" etc. How can I do it? I am able to generate random color like this:

Random randonGen = new Random(); Color randomColor = Color.FromArgb(randonGen.Next(255), randonGen.Next(255),  randonGen.Next(255)); 

but I need the names and not all colors generated like this have a known name.

Thanks

like image 639
user579674 Avatar asked Apr 27 '11 14:04

user579674


People also ask

How to create random color in c#?

Random r = new Random(); BackColor = Color. FromArgb(r. Next(0, 256), 0, 0);


2 Answers

Use Enum.GetValue to retrieve the values of the KnownColor enumeration and get a random value:

Random randomGen = new Random(); KnownColor[] names = (KnownColor[]) Enum.GetValues(typeof(KnownColor)); KnownColor randomColorName = names[randomGen.Next(names.Length)]; Color randomColor = Color.FromKnownColor(randomColorName); 
like image 188
Konrad Rudolph Avatar answered Sep 29 '22 09:09

Konrad Rudolph


Take a random value and get from KnownColor enum.

May be by this way:

System.Array colorsArray = Enum.GetValues(typeof(KnownColor)); KnownColor[] allColors = new KnownColor[colorsArray.Length];  Array.Copy(colorsArray, allColors, colorsArray.Length); // get a randon position from the allColors and print its name. 
like image 24
Pih Avatar answered Sep 29 '22 09:09

Pih