Windows Phone 8.1如何在导航到另一个页面时显示进度环?

时间:2015-05-12 10:40:25

标签: c# windows-phone-8.1

WinPhone8.1全新:

我的WinPhone8.1应用程序似乎在页面之间导航速度非常慢 - 每个页面都是一个问题我有上一页/下一页按钮:

switch-case

正如你所看到的那样,我只是试着设置private void btnNextQuestion_Click(object sender, RoutedEventArgs e) { ProgressRing1.IsActive = true; Frame.Navigate(typeof(Question), _survey.Id.ToString() + "|" + _nextField.Id.ToString()); } ,我没想到会这样做,但无论如何我都试过了。然后我试着变得聪明并且使用一个任务(对我来说也是新手 - 所以也许我做错了)启动ProgressRing但是这并没有任何效果:

ProgressRing1.IsActive = true;

所以任何人都可以解释我如何实现我的目标 - 这基本上是让用户知道他们的按钮按下已被识别并且应用正在处理它。

1 个答案:

答案 0 :(得分:1)

您需要让UI线程稍微运行以刷新UI。有很多方法可以达到这个结果,我建议在这里打电话Task.Delay

private async void btnNextQuestion_Click(object sender, RoutedEventArgs e)
{
    ProgressRing1.IsActive = true;

    // Wait 2 ms to let the UI thread execute
    await Task.Delay(2);

    Frame.Navigate(typeof(Question), _survey.Id.ToString() + "|" + _nextField.Id.ToString());
}

为什么2毫秒?因为您需要为UI线程提供至少1.6毫秒(每帧之间的持续时间),因此请确保刷新UI。否则,它可能会执行您对Frame.Navigate的调用而不刷新UI。