Handling Back Navigation Windows 10 (UWP)(处理返回导航 Windows 10 (UWP))
问题描述
在我的 Xaml 页面中,我有一个框架.
In my Xaml Page I've got a Frame.
我正在尝试让 backButton 事件在框架内导航.
I'm trying to have a backButton event to just navigate inside frame .
所以我尝试使用这段代码
so I tried to use this piece of code
public MainPage(){
this.InitializeComponent();
if(Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")) {
Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
}
}
private void HardwareButtons_BackPressed(object sender,BackPressedEventArgs e) {
if(insideFrame.CanGoBack())insideFrame.GoBack();
else Application.Current.Exit();
}
但在手机中执行 HardwareButtons_BackPressed
事件后它会关闭应用程序.
but In phone after doing HardwareButtons_BackPressed
event it close the application.
似乎在 MainPage 上运行了一些默认的后退按钮行为...
It seems to running some default back button behavior on MainPage...
我该如何解决?在 Windows10 中他们是否添加了新事件来处理返回导航?
How can I fix it? And In Windows10 does they add new events to handle back navigation?
[更新]
现在我发现在 Windows 10 中使用 SystemNavigationManager
比使用 Input.HardwareButtons.BackPressed
更好.
Now I found out it's better to Use SystemNavigationManager
in Windows 10 instead of Input.HardwareButtons.BackPressed
.
SystemNavigationManager currentView = SystemNavigationManager.GetForCurrentView();
推荐答案
您需要通过将 BackPressedEventArgs 的 Handled 属性设置为 true 来告诉系统您处理了后退按钮按下.
You need to tell the system that you handled the backbutton press by setting the Handled property of the BackPressedEventArgs to true.
private void OnHardwareButtonsBackPressed(object sender, BackPressedEventArgs e)
{
// This is the missing line!
e.Handled = true;
// Close the App if you are on the startpage
if (mMainFrame.CurrentSourcePageType == typeof(Startpage))
App.Current.Exit();
// Navigate back
if (mMainFrame.CanGoBack)
{
mMainFrame.GoBack();
}
}
这篇关于处理返回导航 Windows 10 (UWP)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:处理返回导航 Windows 10 (UWP)


- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- 输入按键事件处理程序 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04