我必須在點擊事件發生時更改按鈕的文本和顏色,但只需幾秒鐘,然後應顯示舊的文本和顏色值。更改特定時間段內按鈕的顏色和文字
這是如何工作的?也許有一個異步任務,在時間結束後重置值?
問題是我認識到顏色和文本只有在點擊事件方法完成後纔會更新。
我必須在點擊事件發生時更改按鈕的文本和顏色,但只需幾秒鐘,然後應顯示舊的文本和顏色值。更改特定時間段內按鈕的顏色和文字
這是如何工作的?也許有一個異步任務,在時間結束後重置值?
問題是我認識到顏色和文本只有在點擊事件方法完成後纔會更新。
我目前正在做很多異步和等待的研究,目前有點沉迷於它。所以我無法阻止自己回答這個問題。
退房一個小樣本,如下:
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:
當按鈕被點擊時,它會進入異步按鈕點擊事件處理程序Button1_Click。
按鈕顏色變爲紅色,內容變爲「點擊狀態」。
現在我們可以調用await Task.Delay(8000),也就是說該函數的執行正在等待任務完成,這會延遲8秒鐘的 。執行返回到主UI線程,並且您的UI仍然是響應式的 。
8秒鐘完成後,線程池中的空閒線程將在等待後再次開始執行方法的其餘部分。
該按鈕更改爲默認背景色,內容更改爲默認內容「Click Me」。
希望這會有所幫助。
查找故事板 – Paparazzi