2016-07-23 90 views
2

我必須在點擊事件發生時更改按鈕的文本和顏色,但只需幾秒鐘,然後應顯示舊的文本和顏色值。更改特定時間段內按鈕的顏色和文字

這是如何工作的?也許有一個異步任務,在時間結束後重置值?

問題是我認識到顏色和文本只有在點擊事件方法完成後纔會更新。

+0

查找故事板 – Paparazzi

回答

3

我目前正在做很多異步和等待的研究,目前有點沉迷於它。所以我無法阻止自己回答這個問題。

退房一個小樣本,如下:

XAML代碼:

<Grid > 
    <Button x:Name="Button1" Content="Click Me" Width="88" Height="44" Click="Button1_Click"/> 
</Grid> 

代碼背後:

private async void Button1_Click(object sender, RoutedEventArgs e) 
{ 
    Button1.Background = Brushes.Red; 
    Button1.Content = "Clicked State"; 
    await Task.Delay(8000); 
    Button1.Background = Brushes.Transparent; 
    Button1.Content = "Click Me"; 
} 

現在讓我來解釋一下發生了什麼她的e:

  1. 當按鈕被點擊時,它會進入異步按鈕點擊事件處理程序Button1_Click。

  2. 按鈕顏色變爲紅色,內容變爲「點擊狀態」。

  3. 現在我們可以調用await Task.Delay(8000),也就是說該函數的執行正在等待任務完成,這會延遲8秒鐘的 。執行返回到主UI線程,並且您的UI仍然是響應式的 。

  4. 8秒鐘完成後,線程池中的空閒線程將在等待後再次開始執行方法的其餘部分。

  5. 該按鈕更改爲默認背景色,內容更改爲默認內容「Click Me」。

希望這會有所幫助。

+0

這實際上是我正在尋找!謝謝。 – student96

+0

高興地幫助:) – ViVi