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?但它没有帮助.
你写的代码不正确.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
| 归档时间: |
|
| 查看次数: |
1784 次 |
| 最近记录: |