gpt4 book ai didi

windows-phone-8.1 - Windows phone 8.1 BackPressed 无法正常工作

转载 作者:行者123 更新时间:2023-12-04 22:46:14 25 4
gpt4 key购买 nike

Windows Phone 8.1 新世界。基本功能是点击后退按钮。那个功能不能正常工作是这个windows phone 8.1。是这种行为还是我弄错了。

下面的代码在主页中使用,但此代码在单击返回时也从所有其他类调用。我只需要在主页上访问以下方法。

请检查下面的代码并向我推荐好的解决方案。

请看我的代码:

 public HomePage()
{
this.InitializeComponent();
Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
}

void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{

}

谢谢

最佳答案

它工作正常。 BackPressed event正在应用程序范围内工作。我想到的两个选项:

  • 编写事件处理程序来识别您当前调用它的页面 - 简单示例如下所示:
    private void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
    {
    Frame frame = Window.Current.Content as Frame;
    if (frame == null) return;

    if (frame.Content is HomePage)
    {
    e.Handled = true;
    Debug.WriteLine("I'm in HomePage");
    }
    else if (frame.CanGoBack)
    {
    frame.GoBack();
    e.Handled = true;
    }
    }
  • 第二个选项 - 订阅 Windows.Phone.UI.Input.HardwareButtons.BackPressed进入主页时退订,离开主页时退订。请注意,这种方式存在一些缺陷 - 您必须正确处理 OnNavigatedTo、OnNavigatedFrom、Suspending 和 Resuming(更多关于 Lifecycle here)。另请注意,订阅应在其他人之前完成 - 例如 NavigationHelper。

  • 一些说明 - 上面的代码应该可以工作,但也取决于其他情况:
  • 如果还有其他订阅 BackPressed之前(在 App.xaml.cs 中) - 请记住,通常事件会按照订阅的顺序触发
  • 检查您是否正在使用 NavigationHelper - 它也订阅了 BackPressed
  • 切记不要多次订阅
  • 记得允许用户离开您的主页
  • 关于windows-phone-8.1 - Windows phone 8.1 BackPressed 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24414570/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com