我正在开发一个Windows Phone 8应用程序。我想控制手机的后退按钮以完成特定的任务。我希望当用户在特定页面按下后退按钮时,它不会导航到前一页,而是导航到我想要的页面。他们是否有任何方式来控制手机中的硬件后退按钮?在Windows Phone应用程序中的后退按钮控制
回答
在Silverlight应用程序(WP7,WP8,WP8.1)你这样做:
protected override void OnBackKeyPress(CancelEventArgs e)
{
// put any code you like here
MessageBox.Show("You pressed the Back button");
e.Cancel = true;
}
要在所有的Windows Phone版本的工作,如果你正在使用Silverlight。
如果您使用的WinRT为Windows Phone的8.1,这是一个有点不同:
打开NavigationHelper.cs,使这个修改:
private void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
{
if (this.GoBackCommand.CanExecute(null) && !e.Handled)
{
e.Handled = true;
this.GoBackCommand.Execute(null);
}
}
现在,在您的应用页面(按下后退按钮时将打开的页面),请添加以下命名空间:
using Windows.Phone.UI.Input;
这个处理程序添加到您的页面的构造方法:
HardwareButtons.BackPressed += OnBackPressed;
然后添加这个方法:
private async void OnBackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
{
e.Handled = true;
// add your own code here to run when Back is pressed
}
注:在这两种情况下,“e.Handled =真正的”行告诉OS的已经处理了后退按钮,因此操作系统不会执行默认行为。如果你删除该行,你自己的代码将运行,操作系统也会自行向后导航。
请注意Rowland的关于覆盖Back按钮的评论 - 如果您没有直观的导航,您会混淆用户并冒着被拒绝的风险(如果您只需要控制暂停屏幕或菜单就没问题,但是如果你使用Back按钮作为游戏控制来实现一些噱头,你将会遇到麻烦)。
我的博客有更详细一点相同的答案,如果你需要它: http://grogansoft.com/blog/?p=572
虽然可以取消导航事件,并允许在游戏中显示暂停屏幕或类似内容,但通常不允许在应用程序中使用后退按钮进行除向后导航之外的任何操作;每requirement 5.2.4的Windows Phone技术认证要求
为了保持一致的用户体验,后退按钮只能用于在应用程序中向后导航。
如果要创建一个XAML应用程序的地方是允许取消“后退”操作,如每对Windows Phone的 技术认证要求5.2.4.4:
对于游戏,当在游戏过程中按下后退按钮时,游戏可以选择呈现暂停上下文菜单或对话框,或者它可以将用户导航到之前的菜单屏幕。
那么你可以通过重写OnNavigatingFrom
方法在网页上实现这一点,并设置NavigatingCancelEventArgs
的Cancel
财产,所以像这个例子从Frame, page, and navigation features for Windows Phone 8:
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
base.OnNavigatingFrom(e);
// If the navigation can be cancelled, ask the user if they want to cancel
if (e.IsCancelable)
{
MessageBoxResult result = MessageBox.Show("Do you want to stay here?", "Confirm Navigation from Page", MessageBoxButton.OKCancel);
if (result == MessageBoxResult.OK)
{
// User wants to stay here
e.Cancel = true;
return;
}
}
}
当然,你可以选择以不同的方式实施提示,但这应该说明如何可能。
- 1. 后退按钮控制我的Windows Phone 8.1 Silverlight应用程序
- 2. Windows Phone应用程序中的MvvmCross和后退按钮
- 3. Windows Phone 8 Databound应用程序和后退按钮
- 4. Windows Phone应用程序后退按钮空白屏幕
- 5. Windows Phone 7后退按钮和应用程序墓碑?
- 6. Windows Phone 8:后退按钮
- 7. Windows Phone 8后退按钮
- 8. 在Windows Phone上中断后退按钮
- 9. Android应用程序中的控制硬件后退按钮
- 10. 如何控制windows phone 10硬件后退按钮
- 11. 测试应用程序未能在后退按钮... Windows Phone 7的
- 12. 在windows phone全景应用程序中控制前进和后退导航
- 13. 如何将后退按钮应用于windows phone中的画布?
- 14. 的Windows Phone 8的PhoneGap:如何关闭应用程序与后退按钮
- 15. Windows Phone 7后退按钮问题
- 16. Windows Phone - XNA游戏 - 后退按钮
- 17. WP7 PhoneGap应用程序后退按钮退出应用程序
- 18. iphone - 在没有视图控制器的应用程序中的后退按钮
- 19. windows phone 7应用程序 - 后退按钮导致新页面实例
- 20. 导航应用程序 - 后退按钮
- 21. Spring MVC应用程序(后退按钮)
- 22. 后退按钮关闭应用程序
- 23. 在退出应用程序之前按两次后退按钮
- 24. 应用程序后退按钮android
- 25. Windows 10托管应用程序的后退按钮
- 26. 在Windows Phone 7应用中使用WebBrowserTask的后退按钮问题
- 27. Android应用程序中的后退按钮无法退出应用程序
- 28. 控制asp.net中的后退按钮url
- 29. 应用程序崩溃导航控制器中的点击后退按钮
- 30. 在Windows Phone应用程序中使用单选按钮
我正在开发一个游戏,对于需要将浏览到特定的页面上按后退按钮。他们有什么办法呢? – user3599830
这是XAML游戏还是XNA? –
这是XAML游戏 – user3599830