установить случайный цвет для текстового поля из набора цветов в Windows phone?

#c# #windows-phone-8.1

#c# #windows-phone-8.1

Вопрос:

Я использую массив строк для индексации цветов.

 string[] fore {"Colors.Yellow","Colors.Red","Colors.Blue","Colors.White","Colors.Green"};
int sIndex = rnd.Next(fore.Length);
textblock.Foreground = new SolidColorBrush(fore[sIndex]);
 

Но это выдает ошибку недопустимого аргумента?
Что делать?

Комментарии:

1. Вместо массива строк создайте массив цветов, и он должен работать.

Ответ №1:

Вы вводите строку в конструктор SolidColorBrush. Я думаю, что для этого нужен цветной объект. Попробуйте создать цвет [] вместо массива строк:

      Color[] fore=  {Color.Yellow,Color.Red,Color.Blue,Color.White,Color.Green };
     int sIndex = rnd.Next(fore.Length);
     textblock.Foreground = new SolidColorBrush(fore[sIndex]);
 

Комментарии:

1. это не решило проблему! я предполагаю, что Цвет предназначен для описания цветов в альфа-, красном, зеленом, синем каналах…

2. Не совсем. Система. Windows. Медиафайлы. Color — это класс, который обладает статическими свойствами для многих цветов. Конструктор для SolidBrushColor принимает один из них в качестве параметра. Возможно, вы используете систему. Рисование. Цвет, не знаю, имеет ли это какое-то значение. Но в чем ошибка с приведенным выше кодом??

3. Система. Windows. Медиафайлы. Цвет не содержит определения для желтого или красного

4. @VarunBehl Хорошо, приятно слышать! Вы могли бы пометить мой ответ как принятый, если он вам помог. Это также помогает другим людям с той же проблемой…

Ответ №2:

Ну, поскольку fore[sIndex] это a string , похоже SolidColorBrush , что у него нет конструктора, принимаемого string в качестве параметра. Но у него есть конструктор, который принимает Color в качестве параметра.

Вы можете изменить его на Color array вместо string array.

 Color[] fore = new[] { Color.Yellow, Color.Red, Color.Blue, Color.White, Color.Green };
int sIndex = rnd.Next(fore.Length);
textblock.Foreground = new SolidColorBrush(fore[sIndex]);
 

Комментарии:

1. там написано, что невозможно выполнить конвертацию из системы. Windows. Медиафайлы. Цвет [] в систему. Windows. Медиафайлы. Цвета [] в новом операторе!! и, таким образом, не работает? Хотя цвета предназначены только для предопределенных цветов..

2. @VarunBehl Это странно. В качестве параметра нет конструктора SolidColorBrush этого tales Colors .