0
在我的UWP應用程序中,我有2個幀。在默認框架中,我有一個SplitView
和SplitView.Content
,我有一個自定義框架Mainframe
。我的應用程序有大約5頁,所有這些都加載在MainFrame
。 MainPage
是默認框架中的唯一頁面。這是我使用的導航代碼:UWP在手機和臺式機/筆記本電腦中的不同導航行爲
public MainPage()
{
this.InitializeComponent();
MainFrame.Navigate(typeof(PageX));
MainFrame.Navigated += MainFrame_Navigated;
SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested;
}
private void MainFrame_Navigated(object sender, NavigationEventArgs e)
{
SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =
((Frame)sender).CanGoBack ?
AppViewBackButtonVisibility.Visible :
AppViewBackButtonVisibility.Collapsed;
}
private void OnBackRequested(object sender, BackRequestedEventArgs e)
{
if(MainFrame.CurrentSourcePageType == typeof(PageX))
{
MainFrame.BackStack.Clear();
MainFrame.Navigate(typeof(PageY));
}
else if (MainFrame.CanGoBack)
{
e.Handled = true;
MainFrame.GoBack();
}
}
這部作品在桌面上按預期(也就是,當我在pageX屬性,然後單擊後退按鈕,我被帶到pageY),但在手機上它的工作原理正如大多數部分所預期的那樣,除了當我點擊pageX的後退按鈕時,如果是這種情況,應用程序就會退出。但在調試過程中,我發現我第一次接觸pageY然後關閉應用程序(它發生得非常快)。但它並沒有完全關閉,它最小化了,當我再次打開應用程序時,它將在pageY上。