我正在尝试刷新/更新Metro Style应用的用户界面以反映更改。
要重画Windows窗体中的控件,您可以简单地使用:
this.Refresh();
如何在Metro Style应用中获得相似的结果?
考虑一下C#中的这个简单示例:
private async void Button_Click(object sender, RoutedEventArgs e)
{
btnStatus.Content = "Test started";
Task.Delay(3000); // Wait 3 seconds
btnStatus.Content = "Test Ended"
}
我需要做的是:显示“开始”消息,等待几秒钟,然后显示“结束”消息。但是,当它运行时,btnStatus立即显示“ TestEnded”-好像前两个语句没有执行。
我怎样才能解决这个问题?
我看过:How to refresh the UI in a metro app?,但没有帮助。
最佳答案
您编写的代码不正确。 Task.Delay()异步运行,因此您的代码自然会继续进行。
这将正常工作...
private async void Button_Click(object sender, RoutedEventArgs e)
{
btnStatus.Content = "Test started";
await Task.Delay(3000); // Wait 3 seconds
btnStatus.Content = "Test Ended"
}
注意等待密钥世界的添加