【问题标题】:Alert on Back Key Press, Confirm Exit后退键警报,确认退出
【发布时间】:2011-11-08 23:41:28
【问题描述】:

我正在编写一个 Windows Phone 应用程序,我想知道如何提醒并确保该用户真的想在后退键按下时退出该应用程序。很简单。

谢谢。

【问题讨论】:

    标签: c# xml xaml windows-phone-7


    【解决方案1】:

    我假设您的导航设置为用户只能从第一页退出。如果是这样,在该页面中,您可以覆盖 OnBackKeyPress 事件并取消按钮按下。我还没有测试过这段代码,但似乎它应该可以工作:

    protected override void OnBackKeyPress(CancelEventArgs e)
    {
        if(MessageBox.Show("Are you sure you want to exit?","Exit?", 
                                MessageBoxButton.OKCancel) != MessageBoxResult.OK)
        {
            e.Cancel = true; 
    
        }
    }
    

    编辑 - 我将把它留在这里作为覆盖后退按钮的示例,但在这种情况下,正确的答案是不实现该功能。

    【讨论】:

    • keyboardP 提供的解决方案会起作用,但是,除非您有非常令人信服的理由这样做,否则我建议您不要这样做。整个平台的用户体验应该是统一的,根据我的经验,在手机上显示“你确定”对话框的唯一应用程序是游戏。用户知道,如果他们在第一页并且他们回击,他们将退出应用程序。在我同意这样做之前,您必须有一个非常令人信服的理由,因为我不希望应用无法按我预期的那样工作。
    • 哦 - 我也不喜欢游戏这样做。 ;)
    • Rich 说得很好。最初的 Facebook 应用在退出前有警告,但可以关闭。自更新以来,我认为您无法打开该设置。 IIRC,用户指南中有一些内容不鼓励退出时弹出窗口(对于非游戏),尽管我可能记错了。
    • 将其更改为“System.ComponentModel.CancelEventArgs”或单击 CancelEventArgs,然后按“ctrl”和“。”一起为它导入命名空间。
    • 尝试将其更改为MessageBoxResult
    【解决方案2】:

    虽然之前关于取消 OnBackKeyPress 的答案在技术上可能有效,但它可能会导致您的应用无法通过认证要求。请参阅以下链接:

    http://msdn.microsoft.com/en-us/library/hh184840(v=VS.92).aspx

    5.2.4.2 – 返回按钮:第一个屏幕 从应用程序的第一个屏幕按返回按钮必须关闭应用程序。

    我建议不要实现此功能。

    【讨论】:

    • 我也是。大多数时候人们想要实现这个功能,他们似乎是从 Windows 桌面应用程序的角度来处理应用程序。 Windows Phone 平台是一种不同的体验。除了不符合市场要求之外,这还会产生“一目了然……哦,等等,呃,是的,我真的打算这样做……-Go!”经验。不太酷。
    • 我想把它放进去的原因是你似乎应该可以按返回键返回,但你不能。因此,当您按下返回键时,您最终会存在应用程序。我已经看到游戏这样做了,在普通的应用程序中没有办法吗?
    • 当您在第一个屏幕时,如果不是“退出应用程序”,那么“返回”是什么?游戏是允许这样做的,因为后退按钮也可以用作游戏的暂停按钮,但在普通的应用程序中,没有必要。阅读 Peter Torr 关于该主题的博客:chrome://coralietab/content/container.html?url=0,blogs.msdn.com/b/ptorr/archive/2011/10/06/…
    • 真的只有一个屏幕,它只是一个嵌入式网页。非常简单的应用程序,但它很有用。已经发布:windowsphone.com/en-US/apps/… 我有一个很好的理由想要在退出时发出警报,看起来你应该可以按返回返回一页,但你不能。让它警觉地说“哇,你可能不是故意退出应用程序”才有意义。我知道在大多数情况下不应该这样做。
    • Rev - 如果您的应用程序包装了一个网页,您可能需要手动管理后台堆栈。您可以处理后退按键,然后如果用户之前导航到您的应用程序中的新网页,则要求浏览器导航回页面并按处理方式打包后退按键。只要确保如果用户启动您的应用程序并在没有在浏览器中导航的情况下进行回击,您就不会处理任何事情。这种技术过去对我有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多