我想在单击按钮时更改按钮的背景颜色。使按钮从红色变为绿色再变为红色,等等......
但是,当我单击背景颜色时,它不会改变。
这是我尝试过的:
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
第三个解决方案似乎最相关,但不起作用。
最佳答案
我在 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
}
它有效,我不知道为什么。当我需要使用一些复杂的不透明效果时,我可能需要一些额外的矩形并设置它们的填充。有点不方便。
关于silverlight - 在后面的代码中更改 Silverlight 5 中按钮的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9565072/