在后面的代码中更改silverlight 5中按钮的背景颜色

时间:2012-03-05 10:27:22

标签: silverlight button colors background

我想在点击按钮时更改按钮的背景颜色。要使按钮从红色变为绿色再变为红色......

但是,当我点击背景颜色时不会改变。

以下是我的尝试:

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

第三种解决方案似乎是最令人瞩目但却行不通的。

1 个答案:

答案 0 :(得分:4)

我在Silverlight 5中遇到了与UserControl相同的问题。

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

但是如果我命名主Grid网格并写下这些代码:

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

它有效,我不知道为什么。当我需要使用一些复杂的不透明效果时,我可能需要一些额外的矩形并设置它们的填充。这有点不方便。