【问题标题】:How to refresh the UI of a Metro Style app?如何刷新 Metro Style 应用程序的 UI?
【发布时间】:2012-08-17 19:47:40
【问题描述】:

我正在尝试刷新/更新 Metro Style 应用的 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”——就好像前 2 条语句没有执行一样。

我该如何解决这个问题?

我看过:How to refresh the UI in a metro app?,但没有帮助。

【问题讨论】:

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


    【解决方案1】:

    您编写的代码不正确。 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"
    } 
    

    注意添加了 await 键世界

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      相关资源
      最近更新 更多