我正在尝试刷新/更新Metro风格应用的UI以反映更改 要重新绘制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?,但没有帮助。
答案 0 :(得分:6)
您编写的代码不正确。 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"
}
请注意添加等待密钥世界