Я создаю приложение для Windows Store. Я сталкиваюсь с проблемой при попытке сравнить фон с цветом.Сравнение Button.Background с цветами
Что делает моя программа. На экране есть много кнопок, и одним нажатием любой кнопки он меняет цвет фона на красный или зеленый. Начиная с красного цвета и переключения цвета за клик. Теперь я хочу, чтобы кнопки, которые уже были нажаты, их background
не должны меняться. Таким образом, фоновая проверка if
заявление, чтобы пропустить код изменения цвета background
.
Это мой код:
private void changecolor(object sender, RoutedEventArgs e)
{
if ((sender as Button).Background != "Red" && (sender as Button).Background != "Green")
{
if (counter == 1)
{
(sender as Button).Background = new SolidColorBrush(Windows.UI.Colors.Green);
(sender as Button).Content = "Green";
counter = 0;
}
else if (counter == 0)
{
(sender as Button).Background = new SolidColorBrush(Windows.UI.Colors.Red);
(sender as Button).Content = "Red";
counter = 1;
}
}
}
На первом if
заявлении, я хочу, чтобы проверить, если Background
не Red
или Green
.
(sender as Button).Background != Windows.UI.Colors.Red
(sender as Button).Background != "Red"
Приведенный выше код не работает.
Что я пишу на месте «Красный», чтобы провести сравнение?
Возможно, код ошибки, который вы видите, может быть полезен. Вы можете видеть, что вы устанавливаете значение свойства «Background» для «SolidColorBrush», что, очевидно, не совпадает с «строкой» с именем цвета. –
@ dubstylee Вот ошибки Оператор '! =' Не может быть применен к операндам типа «Windows.UI.Xaml.Media.Brush» и «Windows.UI.Color» Оператор '! =' Не может быть применен к операнды типа «Windows.UI.Xaml.Media.Brush» и «строка» –
Короткий ответ: замените '' Red ''на' Brushes.Red'. Более подробный ответ ниже. –