В проекте Windows Phone 7 я делаю цветную анимацию на фоне кнопок, меняя цвет в диапазоне.Я хочу, чтобы анимация остановилась при нажатии кнопки, и чтобы цвет фона кнопки оставался таким же, как и при нажатии.Для этого у меня есть следующий набор:
<Button Height="72" HorizontalAlignment="Left"
Margin="135,48,0,0" Name="button1" VerticalAlignment="Top" Width="160"
Click="button1_Click">
<Button.Resources>
<Storyboard x:Name="colorStoryboard">
<!-- Animate the background color of the canvas from red to green over 4 seconds. -->
<ColorAnimation BeginTime="00:00:00" Storyboard.TargetName="button1"
Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)"
From="Red" To="Blue" Duration="0:0:4" />
</Storyboard>
</Button.Resources>
</Button>
Событие щелчка закодировано как:
private void button1_Click(object sender, RoutedEventArgs e)
{
colorStoryboard.Pause();
Brush holdBrush = new SolidColorBrush();
holdBrush = button1.Background;
colorStoryboard.Stop();
button1.Background = holdBrush;
}
Вот как я думаю, это будет работать: после раскадровки. Пауза () останавливает любое дальнейшее изменение цвета (метод Stop заставляет кнопку вернуться к цвету фона по умолчанию), я сохраняю текущую кисть фона в новую Brush holdBrush, а затем после выполнения Stop () пытаюсь восстановитьсвойство background кнопки к значению, которое оно имело при возникновении Pause, используя holdBrush.
Однако это не то, что происходит.В приведенном выше коде я подтвердил, что у holdBrush есть цвет, который был у кнопки при приостановке раскадровки, но после остановки Stop, HoldBrush теперь имеет цвет по умолчанию - фактически, он имеет цвет #FFFFFF, который является цветом кнопкиберет на себя, когда он нажал.Любые идеи, кто-нибудь?