2017-04-27 16 views
0

UWP에서 스택 깊이 탐색을 제어하는 ​​방법은 무엇입니까? 스택 깊이를 어떻게 제어 할 수 있습니까? 백 스택에 3 페이지 만 넣을 수 있습니다. 사실 난 항상 미만 4UWP에서 다시 스택 깊이 탐색 제어 방법

+0

내 App.xaml.cs를하다 어쨌든 다 했지 난 당신을 잘 모릅니다 스택 깊이를 다시합니다 코드를 읽을 수 있으면 중국어로 씁니다. – lindexi

답변

0

이 당신은 MainPage에서 스택을 페이지로 이동 한 다음에 쓸 수

sealed partial class App : Application 
{ 
    /// <summary> 
    /// Initializes the singleton application object. This is the first line of authored code 
    /// executed, and as such is the logical equivalent of main() or WinMain(). 
    /// </summary> 
    public App() 
    { 
     this.InitializeComponent(); 
     this.Suspending += OnSuspending; 
    } 

    /// <summary> 
    /// Invoked when the application is launched normally by the end user. Other entry points 
    /// will be used such as when the application is launched to open a specific file. 
    /// </summary> 
    /// <param name="e">Details about the launch request and process.</param> 
    protected override void OnLaunched(LaunchActivatedEventArgs e) 
    { 
     Frame rootFrame = Window.Current.Content as Frame; 

     // Do not repeat app initialization when the Window already has content, 
     // just ensure that the window is active 
     if (rootFrame == null) 
     { 
      // Create a Frame to act as the navigation context and navigate to the first page 
      rootFrame = new Frame(); 

      rootFrame.NavigationFailed += OnNavigationFailed; 

      if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) 
      { 
       //TODO: Load state from previously suspended application 
      } 

      // Place the frame in the current Window 
      Window.Current.Content = rootFrame; 

      SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested; 

      SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = 
       rootFrame.CanGoBack ? 
       AppViewBackButtonVisibility.Visible : 
       AppViewBackButtonVisibility.Collapsed; 
     } 

     if (e.PrelaunchActivated == false) 
     { 
      if (rootFrame.Content == null) 
      { 
       // When the navigation stack isn't restored navigate to the first page, 
       // configuring the new page by passing required information as a navigation 
       // parameter 
       rootFrame.Navigate(typeof(MainPage), e.Arguments); 
      } 
      // Ensure the current window is active 
      Window.Current.Activate(); 
     } 
    } 

    /// <summary> 
    /// Invoked when Navigation to a certain page fails 
    /// </summary> 
    /// <param name="sender">The Frame which failed navigation</param> 
    /// <param name="e">Details about the navigation failure</param> 
    void OnNavigationFailed(object sender, NavigationFailedEventArgs e) 
    { 
     throw new Exception("Failed to load Page " + e.SourcePageType.FullName); 
    } 

    /// <summary> 
    /// Invoked when application execution is being suspended. Application state is saved 
    /// without knowing whether the application will be terminated or resumed with the contents 
    /// of memory still intact. 
    /// </summary> 
    /// <param name="sender">The source of the suspend request.</param> 
    /// <param name="e">Details about the suspend request.</param> 
    private void OnSuspending(object sender, SuspendingEventArgs e) 
    { 
     var deferral = e.SuspendingOperation.GetDeferral(); 
     //TODO: Save application state and stop any background activity 
     //save(); 
     deferral.Complete(); 
    } 

    private void OnBackRequested(object sender, Windows.UI.Core.BackRequestedEventArgs e) 
    { 
     Frame rootFrame = Window.Current.Content as Frame; 

     if (rootFrame.CanGoBack) 
     { 
      e.Handled = true; 
      rootFrame.GoBack(); 
     } 
    } 
+1

질문을 편집하고 별도의 답변이 아닌 질문에 코드를 포함해야합니다. –