单击更改背景按钮颜色

时间:2014-08-18 07:06:51

标签: c# visual-studio windows-phone-8

我正在开发Windows Phone 8应用程序,我有两个按钮。一旦我点击第一个,它的颜色就会改变,但当我点击第二个颜色并且它的颜色也改变了,第一个按钮的颜色也没有设置为默认颜色。我无法从第二个按钮的点击事件中访问第一个按钮。如何突出显示一个按钮,并在单击时将另一个按钮的颜色设置为默认值?

编辑:在这里,我无法访问第一个事件处理程序中的第二个按钮。

private void firstButton_Click(object sender, RoutedEventArgs e)
{
    (sender as Button).Background = new SolidColorBrush(Colors.Green); 
}

private void secondButton_Click(object sender, RoutedEventArgs e)
{
    (sender as Button).Background = new SolidColorBrush(Colors.Green); 
}

1 个答案:

答案 0 :(得分:1)

为什么不能从第二个按钮访问第一个按钮?通常你可以做类似的事情:

private void firstButton_Click(object sender, RoutedEventArgs e)
{
    (sender as Button).Background = new SolidColorBrush(Colors.Green); 
    secondButton.Background = new SolidColorBrush(Colors.LightGray);
}

private void secondButton_Click(object sender, RoutedEventArgs e)
{
    (sender as Button).Background = new SolidColorBrush(Colors.Green);
    firstButton.Background = new SolidColorBrush(Colors.LightGray);
}

对于可重用性,可能会把它放在一个方法中:

private void SetButtonColor(Button toDefaultColor, Button toGreenColor)
{
    toGreenColor.Background = new SolidColorBrush(Colors.Green);
    toDefaultColor.Background = new SolidColorBrush(Colors.LightGray);
}

private void secondButton_Click(object sender, RoutedEventArgs e)
{
    SetButtonColor(firstButton, (sender as Button));
}