【问题标题】:How can i override back button as I used to?我怎样才能像以前一样覆盖后退按钮?
【发布时间】:2014-06-04 17:18:29
【问题描述】:

我刚刚安装了 Windows Phone 8.1 SDK,并且想到了一个应用程序。但我什至不能来回导航!后退按钮默认情况下手机退出应用程序,并且由于所有页面现在都继承了“页面”,因此后退按钮的覆盖不会暴露。

看了http://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn639128.aspx但是看不懂,怎么实现呢?

【问题讨论】:

  • 你也可以看看this extension——也许对管理事件有一点帮助。

标签: c# windows-phone-8.1


【解决方案1】:

查看 Visual Studio 中包含的任何 WP 项目(例如:The Hub App 项目)。或者向您的应用程序添加一个新的“BasicPage”。您会注意到他们已经在使用 NAvigationHelper 为您订阅 BackPressed 事件。您链接到的帖子很好地解释了它。

关于用户按下后退按钮时引发的 BackPressed 事件,最重要的一点是,如果您的应用程序不处理该事件,通过将 BackPressedEventArgs.Handled 属性设置为 true,操作系统将暂停您的应用并将用户返回到以前的体验

该帖子中给出了示例

private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
    Frame frame = Window.Current.Content as Frame;
    if (frame == null)
    {
       return;
    }

    if (frame.CanGoBack)
    {
        frame.GoBack();
        e.Handled = true;
   }

}

请注意,它设置了e.Handled = true; 以指示应用程序不应“关闭”。你在说“嘿,我已经处理好了”。在示例中,它将导航到上一页。

【讨论】:

  • 我想我还没有为新时代做好准备:P 但是这个新项目类型并保留旧的 silverlight 是怎么回事?
  • WP 应用程序将迁移到新的运行时,但所有功能尚未迁移。因此,如果您需要一些东西,或者只是不想创建运行时应用程序,请使用 Silverlight 应用程序。很快一切都将基于运行时。
  • 感谢肖恩的回复! “运行时应用”是新术语?
猜你喜欢
  • 2022-01-24
  • 2018-03-25
  • 2020-08-31
  • 2015-10-15
  • 1970-01-01
  • 2013-01-28
  • 2016-10-13
  • 2011-04-07
  • 2023-02-13
相关资源
最近更新 更多