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

时间:2012-08-17 19:47:41

标签: c# xaml windows-8 microsoft-metro windows-runtime

我正在尝试刷新/更新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?,但没有帮助。

1 个答案:

答案 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"
} 

请注意添加等待密钥世界