2016-07-23 94 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