我必须在点击事件发生时更改按钮的文本和颜色,但只需几秒钟,然后应显示旧的文本和颜色值。更改特定时间段内按钮的颜色和文字
这是如何工作的?也许有一个异步任务,在时间结束后重置值?
问题是我认识到颜色和文本只有在点击事件方法完成后才会更新。
我必须在点击事件发生时更改按钮的文本和颜色,但只需几秒钟,然后应显示旧的文本和颜色值。更改特定时间段内按钮的颜色和文字
这是如何工作的?也许有一个异步任务,在时间结束后重置值?
问题是我认识到颜色和文本只有在点击事件方法完成后才会更新。
我目前正在做很多异步和等待的研究,目前有点沉迷于它。所以我无法阻止自己回答这个问题。
退房一个小样本,如下:
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