在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>
click事件被编码为:
private void button1_Click(object sender, RoutedEventArgs e)
{
colorStoryboard.Pause();
Brush holdBrush = new SolidColorBrush();
holdBrush = button1.Background;
colorStoryboard.Stop();
button1.Background = holdBrush;
}
这是我认为这是可行的:在storyboard.Pause()停止任何进一步的后改变颜色(Stop方法导致按钮返回到它的默认背景色),我将背景的当前画笔保存到新的画笔holdBrush中,然后在执行Stop()之后,我尝试恢复按钮的背景属性到暂停发生时的值,使用holdBrush。
但是,这不是发生了什么。在上面的代码中,我已经确认holdBrush具有当故事板暂停时按钮具有的颜色,但是在停止发生后,holdBrush现在具有默认颜色 - 实际上,它具有颜色#FFFFFF,该颜色是按钮的颜色点击时会发生。任何想法,任何人?
我想停下来,保持颜色。 – Cyberherbalist 2010-11-22 05:32:57