簡體   English   中英

Windows Phone 8.1運行時在OnNavigatedFrom上顯示消息框(后退按鈕)

[英]Windows Phone 8.1 runtime show message box on OnNavigatedFrom (back button)

我已經為此戰斗了一段時間...我正在使用Windows Phone 8.1 Runtime(而不是silverlight),並且具有以下代碼:

    protected override void OnNavigatedFrom(NavigationEventArgs e)
    {
        if (!ExitWithoutSave().Result) return;
        this.navigationHelper.OnNavigatedFrom(e);
    }

    private async Task<bool> ExitWithoutSave()
    {
        MessageDialog dialog = new MessageDialog("There are unsaved changes, are you sure you wish to leave?", "Unsaved changes");
        dialog.Commands.Clear();
        dialog.Commands.Add(new Windows.UI.Popups.UICommand("Yes") { Id = 0 });
        dialog.Commands.Add(new Windows.UI.Popups.UICommand("No") { Id = 1 });

        dialog.DefaultCommandIndex = 0;
        dialog.CancelCommandIndex = 1;

        var result = await dialog.ShowAsync();
        if (result.Label == "No")
        {
            canceled = true;
        }

        return canceled;
    }

基本上,我想問用戶是否希望不保存就離開,如果他說不,那么我想阻止此功能。

問題是,如果在執行OnNavigatedFrom的過程中有等待,Windows手機會認為該應用程序已損壞並且UI被阻止。

是否有任何方法可以在按“后退”按鈕時正確顯示消息框? 如果不是,是否可以完全禁用此頁面的后退按鈕?

謝謝,基蘭

編輯15-11-2015:只是想改變這篇文章。 我沒有將HardwareButton事件與Navigation Helper一起使用的運氣,MessageBoxes仍然無法正常工作。 我什至無法取消后退按鈕的按下。 因此,我想重申一下我的問題:在Windows Phone 8.1 Runtime上按后退按鈕創建確認消息框的最佳方法是什么? F. 消息:“您尚未保存更改,是否要退出?”:是/否。

您可以使用以下事件。

HardwareButtons.BackPressed += HardwareButtons_BackPressed;



    void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
    {

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM