Member 12618031 Ответов: 1

Могу ли я получить случайный цвет из коллекции media.brushes?


Есть ли способ случайным образом получить цвета из системы сбора данных?Окна.Средства массовой информации.Щетки или система.Окна.Средства массовой информации.Цвета. Я заинтересован в том, чтобы получить пару - (название цвета, Цвет).

P.S. Я знаю о том, как получить случайный цвет без названия.

Random r = new Random();
Brush brush = new SolidColorBrush(Color.FromRgb((byte)r.Next(1, 255), (byte)r.Next(1, 255), (byte)r.Next(1, 233)));


Что я уже пробовал:

Я ищу способ получить случайный цвет из системы сбора данных.Окна.Средства массовой информации.Щетки или система.Окна.Средства массовой информации.Цвета.

1 Ответов

Рейтинг:
7

phil.o

Если вам нужен случайный цвет из коллекции, то просто сгенерируйте случайный индекс в коллекцию:

int count = theCollection.Count;
Random r = new Random();
var randomValue = theCollection[r.Next(0, count)];
// You now have a random element from the collection


Member 12618031

Система.Окна.Средства массовой информации.Кисти-это стандартная коллекция, и она не поддерживает методы .Подсчитайте и [r.Next(0, count)]. Я не знаю почему. Возможно, мне нужно создать свою собственную коллекцию с названиями цветов.

phil.o

Система.Окна.Средства массовой информации.Brushes - это не коллекция, то есть она не реализует базовые интерфейсы коллекции. В этом случае вам лучше создать свою собственную коллекцию. Можно было бы Dictionary<string, Color> сопоставление имени цвета с его значением цвета. Другим возможным выбором было бы List<Tuple<string, Color>>.