如何刷新Metro风格应用的UI?

nv.*_*now 1 c# xaml microsoft-metro windows-8 windows-runtime

我正在尝试刷新/更新Metro风格应用的UI以反映更改.
要重新绘制Windows窗体中的控件,您只需使用:

this.Refresh();    
Run Code Online (Sandbox Code Playgroud)

如何在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"
} 
Run Code Online (Sandbox Code Playgroud)

我需要做的是:显示"开始"消息,等待几秒钟,然后显示"结束"消息.但是,当它运行时,btnStatus会立即显示"TestEnded" - 就好像前两个语句没有执行一样.

我怎样才能解决这个问题?

我看过:如何在Metro应用程序中刷新UI?但它没有帮助.

Jef*_*and 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"
} 
Run Code Online (Sandbox Code Playgroud)

注意添加await key world