Изменить цвет фона кнопки в Silverlight 5 в коде позади - PullRequest
4 голосов
/ 05 марта 2012

Я хотел бы изменить цвет фона кнопки, когда я нажимаю на нее.Чтобы заставить кнопку перейти от Красного к Зеленому к Красному и т.д.*

button4.Background.SetValue(BackgroundProperty,new SolidColorBrush(Colors.Red)); -> catastrophic error

button4.SetValue(BackgroundProperty,new SolidColorBrush(Colors.Red)); -> nothing

button4.Background = new SolidColorBrush(Colors.Red); -> nothing

3-е решение кажется наиболее удачным, но не работает.

1 Ответ

4 голосов
/ 10 апреля 2012

Я столкнулся с той же проблемой с UserControl в Silverlight 5.

protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
  base.OnMouseLeftButtonDown(e);
  Background = new SolidColorBrush(Colors.Black); //nothing
}

Но если я назову основную сетку сетки и запишу следующий код:

protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
  base.OnMouseLeftButtonDown(e);
  grid.Background = new SolidColorBrush(Colors.Black); //ok
}

Работает, не знаю почему. Когда мне нужно использовать некоторые сложные эффекты непрозрачности, может быть, мне нужны дополнительные прямоугольники и установить их Fill. Это немного неудобно.

...