Две кнопки:
<Button Content="Button" Height="72" HorizontalAlignment="Left" Margin="10,10,0,0" Name="button1" VerticalAlignment="Top" Width="160" Click="button1_Click" />
<Button Content="Button" Height="72" HorizontalAlignment="Left" Margin="10,92,0,0" Name="button2" VerticalAlignment="Top" Width="160" />
Самоочевидный код:
public MainPage()
{
InitializeComponent();
button1.Background = new SolidColorBrush(Colors.Red);
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Color c = ((SolidColorBrush)((Button)sender).Background).Color;
if (c == Colors.Red)
{
c = Colors.Green;
}
else if (c == Colors.Green)
{
c = Colors.Blue;
}
else if (c == Colors.Blue)
{
c = Colors.Red;
}
else
{
c = Colors.Yellow;
}
((Button)sender).Background = new SolidColorBrush(c);
button2.Background = new SolidColorBrush(c);
}
В обычном приложении Silverlight все работает точно так, как ожидалось. Однако в Windows Phone 7 точно такой же код ведет себя следующим образом:
button1 не меняет цвет (он остается красным)
button2 действительно меняет цвет, если я не нажимаю на него, в этом случае он больше не меняет цвет, когда я нажимаю button1 (т.е. его цвет теперь тоже застрял)
Подсказка? 1011 *