繁体   English   中英

更改按钮的颜色和文本一段时间

[英]Change color and text of button for a certain period of time

单击事件发生时,我必须更改按钮的文本和颜色,但是只需几秒钟,然后应该显示文本和颜色的旧值。

这怎么工作? 也许使用异步任务,该任务在经过时间后会重置值?

问题是我认识到只有在click事件方法完成后才会更新颜色和文本。

我目前在异步和等待方面进行了大量研究,目前对它有些上瘾。 因此我无法阻止自己回答这一问题。

查看以下小样本:

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";
}

现在让我解释一下这里发生了什么:

  1. 当单击按钮时,它将进入异步按钮单击事件处理程序Button1_Click。

  2. 按钮颜色更改为红色,内容更改为“单击状态”。

  3. 现在我们可以调用await Task.Delay(8000),即函数的执行现在正在等待任务完成,这延迟了8秒。 执行返回到主UI线程,您的UI仍然响应。

  4. 8秒后,线程池中的空闲线程将在等待后再次开始执行该方法的其余部分。

  5. 该按钮更改为默认背景色,并且内容更改为默认内容“ Click Me”。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM