在WindowsPhone7项目中,我在按钮背景上进行颜色动画,在一个范围内更改颜色。我希望在单击按钮时动画停止,并使按钮的背景色保持在单击按钮时的颜色上。为此,我有以下设置:
<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;
}
我认为它是这样工作的:在Storyboard.pause()停止颜色的任何进一步更改后(stop方法使按钮返回到其默认背景颜色),我将背景的当前画笔保存到新的画笔holdBrush中,然后在执行stop()后,我尝试将按钮的background属性恢复到v当暂停发生时,使用holdcrush将其赋值。
然而,情况并非如此。在上面的代码中,我已经确认了holdcrush的颜色与故事板暂停时按钮的颜色相同,但是在停止后,holdcrush现在有了默认颜色——实际上,它有颜色ffffff,这是按钮单击时的颜色。有什么想法吗?