我曾經在Windows Phone 8.1 XAML中使用硬件按鈕API。但是,在UWP中,某些設備沒有後退按鈕。我如何適應新的應用程序模型?如何處理按UWP的後退按鈕
3
A
回答
2
可以使用BackRequested事件來處理回退請求:
SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested;
if (App.MasterFrame.CanGoBack)
{
rootFrame.GoBack();
e.Handled = true;
}
2
點點解釋回答。 您可以使用命名空間
SystemNavigationManager的Windows.UI.Core
對於單頁
如果你只是想處理單頁面導航。遵循以下步驟
步驟1。使用命名空間Windows.UI.Core
using Windows.UI.Core;
第2步:註冊回請求事件當前視圖。最好的地方是InitializeComponent()
之後的課程的主要構造函數。
public MainPage()
{
this.InitializeComponent();
//register back request event for current view
SystemNavigationManager.GetForCurrentView().BackRequested += MainPage_BackRequested;
}
第3步:手柄BackRequested事件
private void Food_BackRequested(object sender, BackRequestedEventArgs e)
{
if (Frame.CanGoBack)
{
Frame.GoBack();
e.Handled = true;
}
}
應用程序完全在一個地方進行單rootFrame
處理所有後退按鈕所有視圖最好的地方是App.xaml.cs
步驟1。使用命名空間Windows.UI.Core
using Windows.UI.Core;
第2步:註冊回請求事件當前視圖。這個最好的地方是OnLaunched
之前Window.Current.Activate
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
...
SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested;
Window.Current.Activate();
}
第3步:手柄BackRequested事件
private void OnBackRequested(object sender, BackRequestedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame.CanGoBack)
{
rootFrame.GoBack();
e.Handled = true;
}
}
引用 - Handle back button pressed in UWP
希望這是有幫助的人!
0
上述代碼完全正確,但您必須在rootFrame變量中添加框架對象。以下給出:
private Frame _rootFrame;
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
if (Window.Current.Content==null)
{
_rootFrame = new Frame();
}
}
並將此_rootFrame傳遞給OnBackRequested方法。像:
private void OnBackRequested(object sender, BackRequestedEventArgs
{
if (_rootFrame.CanGoBack)
{
_rootFrame.GoBack();
e.Handled = true;
}
}
相關問題
- 1. Zxing處理後退按鈕
- 2. 處理後退按鈕
- 3. 後退按鈕處理wp7
- 4. 處理android後退按鈕
- 5. 處理後退按鈕
- 6. Android - 處理後退按鈕
- 7. 後退按鈕處理
- 8. 如何可能處理後退按鈕
- 9. 如何避免[navpush]生成的後退按鈕(處理生成後退按鈕)
- 10. 覆蓋後退按鈕按uwp
- 11. 單擊後退按鈕後處理GUI
- 12. Win10 UWP應用程序處理長按回退按鈕
- 13. Google在退出後如何處理後退按鈕?
- 14. 處理後退按鈕的問題
- 15. 處理後退按鈕的Android(onBackPressed)
- 16. 如何處理相機打開時按下「後退」按鈕
- 17. React Native - 設備後退按鈕處理
- 18. Android:在asynctask中處理後退按鈕
- 19. 安卓後退按鈕處理
- 20. 在jquery中處理後退按鈕
- 21. 處理硬件後退按鈕單擊
- 22. XPage:處理瀏覽器後退按鈕
- 23. Android後退按鈕在Appcelerator中處理
- 24. 後退按鈕處理片段
- 25. 如何刪除「後退」按鈕/如何保留後退按鈕
- 26. 自定義Windows 10 UWP後退按鈕
- 27. 請在單擊後退按鈕UWP
- 28. history.js:如何管理後退按鈕
- 29. 如何處理後退按鈕的Grails的Webflow
- 30. 如何處理我的Android設備中的後退按鈕
這個'SystemNavigationManager'位於何處?我無法找到它。 'Windows.UI.Core'命名空間中的 – SandRock
。 VS應該建議你。 – thang2410199
好的。這可能是因爲我的目標是8.1。 – SandRock