我想在点击按钮时更改按钮的背景颜色。要使按钮从红色变为绿色再变为红色......
但是,当我点击背景颜色时不会改变。
以下是我的尝试:
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
第三种解决方案似乎是最令人瞩目但却行不通的。
答案 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
}
它有效,我不知道为什么。当我需要使用一些复杂的不透明效果时,我可能需要一些额外的矩形并设置它们的填充。这有点不方便。