#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
этого talesColors
.