1

在执行操作(启用应用程序栏按钮)之前,我需要在我的应用程序中快速暂停,但我不确定如何最好地完成此操作。基本上很多处理都发生在另一个线程中,但随后 UI 被更新。更新 UI 后,我将枢轴控件滚动到特定的枢轴项。在允许启用应用程序栏按钮之前,我想暂停大约 1 秒钟,或者无论滚动到枢轴控件中的上一个枢轴项需要多长时间。我怎么能做到这一点?到目前为止我所拥有的如下

// Show image and scroll to start page if needed
if (Viewport != null)
{
    Viewport.Source = result;
    if (editPagePivotControl != null && editPagePivotControl.SelectedIndex != 0)
    {
    //Here is where the pivot control is told to move to the first item
    // (from the second which it will be on before this happens)
        editPagePivotControl.SelectedIndex = 0;
    }
    //A flag to determine whether the app bar button should be enabled
    //How to pause for the time it takes to finish moving
    // to the first pivot item?         
    if (_wasEdited)
        ((ApplicationBarIconButton)ApplicationBar.Buttons[0]).IsEnabled = true;
    }
4

1 回答 1

1

试试这个,使用System.Windows.Threading.DispatcherTimer

if (_wasEdited)
{
   DispatcherTimer t = new DispatcherTimer(DispatcherPriority.Normal, Dispatcher);
   t.Tick += new EventHandler((o,e) => 
     ((ApplicationBarIconButton)ApplicationBar.Buttons[0]).IsEnabled = true;
   t.Interval = TimeSpan.FromMilliseconds(1000);
   t.Start();
}

这将等待 1000 毫秒,然后返回 UI 线程(因为我们DispatcherDispatcherTimer构造函数中设置)并启用您的应用程序栏。

如果您经常这样做,请考虑让计时器成为该类的成员。

于 2013-10-06T22:08:15.903 回答