在 Windows Phone 8.1 上等待结果时禁止导航

本文关键字:结果 禁止 导航 等待 Windows Phone | 更新日期: 2023-09-27 18:31:48

我想通过在等待未完成时按"后退"按钮或任何导航事件来防止更改当前页面。因为然后发生异常,它应该显示在同一页面中,在另一种情况下,很难理解什么操作会生成此异常

    private async void AppBarButton_Click(object sender, RoutedEventArgs e)
    {
        MessageDialog dialog = null;
        try
        {
            progressRing.IsActive = true;
            this.IsEnabled = false;
            commandBar1.IsEnabled = false;
            await GlobalVars.API.Call(CC.ChangeDate, date);
            var notify = new MessageDialog("Done");
            await notify.ShowAsync();
        }
        catch (Exception ex)
        {
            dialog = new MessageDialog(ex.Message);
        }
        finally
        {
            progressRing.IsActive = false;
            this.IsEnabled = true;
            commandBar1.IsEnabled = true;
        }
        if (dialog != null) await dialog.ShowAsync();  // must be shown in the same page
    }

在 Windows Phone 8.1 上等待结果时禁止导航

您可以使用以下方法拦截后退按钮:

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
     e.Cancel = true;
}

显然,你可以在那里做任何你想做的事情。