在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