【发布时间】:2010-11-22 16:03:41
【问题描述】:
在 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;
}
这就是我认为它的工作方式:在 storyboard.Pause() 停止颜色的任何进一步变化之后(Stop 方法导致按钮返回其默认背景颜色),我正在保存背景的当前画笔进入新的 Brush holdBrush,然后在执行 Stop() 之后,我尝试使用 holdBrush 将按钮的背景属性恢复为暂停发生时的值。
然而,这不是正在发生的事情。在上面的代码中,我已经确认 holdBrush 具有故事板暂停时按钮的颜色,但是在停止发生之后,holdBrush 现在具有默认颜色 - 实际上,它具有颜色 #FFFFFF,即按钮的颜色单击它时会出现。有什么想法吗?
【问题讨论】:
-
我想停下来按住颜色。
标签: silverlight windows-phone-7