C # Изменить цвет фона кнопки

Отключенные элементы «едят» клики в некоторых браузерах - они не отвечают на них и не позволяют захватить их обработчиками событий в любом элементе или в любом из его контейнеров.

IMHO - самый простой, Самый чистый способ «исправить» это (если вам действительно нужно зафиксировать клики на отключенных элементах, таких как OP), просто добавьте следующий CSS на вашу страницу:

input[disabled] {pointer-events:none}

Это сделает любой клики на отключенном входе попадают в родительский элемент, где вы можете их захватить в обычном режиме. (Если у вас есть несколько отключенных входов, вы можете поместить их в отдельный контейнер самостоятельно, если они еще не выложены таким образом - дополнительный или

, скажем - просто сделать это


Недостатком является то, что этот трюк, к сожалению, не будет работать для старых браузеров, которые не поддерживают свойство CSS pointer-events. Он должен работать от IE 11, FF v3.6, Chrome v4): caniuse.com/#search=pointer-events

Если вам нужно поддерживать старые браузеры, Вам нужно будет использовать один из других ответов!

29
задан Dan Puzey 14 February 2011 в 10:43
поделиться

6 ответов

WinForm:

private void button1_Click(object sender, EventArgs e)
{
   button2.BackColor = Color.Red;
}

WPF:

private void button1_Click(object sender, RoutedEventArgs e)
{
   button2.Background = Brushes.Blue;
}
67
ответ дан SwDevMan81 14 February 2011 в 10:43
поделиться

Сначала у меня возникли проблемы с настройкой цветов для элементов управления приложениями WPF. Похоже, что он не включает System.Windows.Media по умолчанию, но включает Windows.UI.Xaml.Media, который имеет некоторые предварительно заполненные цвета.

В итоге я использовал следующую строку кода, чтобы заставить его работать:

grid.Background.SetValue(SolidColorBrush.ColorProperty, Windows.UI.Colors.CadetBlue);

Вы сможете изменить grid.Background на большинство других элементов управления, а затем изменить CadetBlue на любой из другие цвета это обеспечивает.

1
ответ дан J0e3gan 14 February 2011 в 10:43
поделиться

В WPF фоном является не Color, а Brush. Итак, попробуйте это для начала:

using System.Windows.Media;

// ....

ButtonToday.Background = new SolidColorBrush(Colors.Red);

Более разумно, однако, вы, вероятно, должны смотреть на это в вашем Xaml, а не в коде.

13
ответ дан Dan Puzey 14 February 2011 в 10:43
поделиться
// WPF

// Defined Color
button1.Background = Brushes.Green;

// Color from RGB
button2.Background = new SolidColorBrush(Color.FromArgb(255, 0, 255, 0));
1
ответ дан Volodymyr Sichka 14 February 2011 в 10:43
поделиться

Код для установки цвета фона, для SolidColor:

button.Background = new SolidColorBrush(Color.FromArgb(Avalue, rValue, gValue, bValue));
4
ответ дан Wesley 14 February 2011 в 10:43
поделиться

Я сомневаюсь, что любой из них должен работать. Попробуйте: сначала импортируйте пространство имен в начале кодовой страницы, как показано ниже.

using System.Drawing;

затем в коде.

Button4.BackColor = Color.LawnGreen;

Надеюсь, это поможет.

0
ответ дан Fred 14 February 2011 в 10:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: