处理 Windows Phone 应用中的“后退”按钮 (XAML)

时间:2023-04-20 11:42:44

与电脑不同,所有 Windows Phone 设备都有“后退”按钮,它允许用户在应用的页面之间向后导航。如果用户在转到应用的第一页时再次按“后退”按钮,操作系统会挂起你的应用并将用户导航到应用启动前的体验中。该体验可能是另一个应用,或者可能是“开始”屏幕。本主题讨论应用应如何处理 BackPressed 事件以提供一致的用户体验。

处理 BackPressed 事件

关于在用户按下“后退”按钮时引发的 BackPressed 事件,最需要了解的事情是:如果你的应用没有通过将BackPressedEventArgs.Handled 属性设置为 true 来处理该事件,操作系统将挂起你的应用并使用户返回上一个体验。因此,在事件处理程序中,如果你的应用可以向后导航,你需要这样操作,然后将BackPressedEventArgs.Handled 属性设置为 true。如果你的应用处于第一页且不能向后导航,你不应处理该事件,操作系统将挂起你的应用。幸运的是,Windows Phone 应用的模板中在默认情况下已提供用于此情况的逻辑。以下代码在 App.xaml.cs 文件中提供。

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;
}
}

转自:

https://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/dn639128.aspx