title: Windows Metro content frame navigation and back button visibility
body: <p>I have a Win Metro app that is a XAML/MonoGame hybrid game written in C# with a XAML start page that contains a frame that gets loaded with menu buttons. </p>
  
  <p>After submitting this to the Win Metro store I get a test protocol back basically just containing a screen shot of the start screen of my app and says "Feature not functional" with the two buttons of the start screen circled in red. There has never been a problem using those buttons on my setup (two different Win 8 Machines + simulator).</p>
  
  <p>Another strange thing is that the back button is visible, which should not be possible as I explicitly set IsEnabled of the back button to False if the frame is the start frame (originally I had the IsEnabled property binding set in XAML to <em>CanGoBack</em> of the content frame, but that did not work either).</p>
  
  <p>This is the code for setting the visibility of the back button when the user navigates.</p>
  
  <pre><code>    public MainPage()
      {
          this.InitializeComponent();
  
          contentFrame.Navigate(typeof(MainFrame));
  
          Window.Current.SizeChanged += VisualStateChanged;
          contentFrame.Navigated += contentFrame_Navigated;
      }
  
      void contentFrame_Navigated(object sender, NavigationEventArgs e)
      {
          ApplicationViewState visualState = ApplicationView.Value;
  
          VisualStateManager.GoToState((Control)e.Content, 
                 visualState.ToString(), false);
  
          if (e.Content is MainFrame)
              backButton.IsEnabled = false;
          else
              backButton.IsEnabled = contentFrame.CanGoBack;
      }
  
      private void backButton_Click(object sender, RoutedEventArgs e)
      {
          contentFrame.GoBack();
      }
  
      internal void GoHome()
      {
          while( contentFrame.CanGoBack )
              contentFrame.GoBack();
      }
  </code></pre>
  
  <p>GoHome() is called from the game page if a user opts to quit the game there (I don't get to see any back button in the start page from there either):</p>
  
  <pre><code>    private void QuitGame(IUICommand command)
      {
          App.ClearGame();
  
          Window.Current.Content = App.MainPage;
          Window.Current.Activate();
          App.MainPage.GoHome();
      }
  </code></pre>
  
  <p>And here is the code for the buttons in the MainFrame:</p>
  
  <pre><code>    private void onePlayerButton_Click(object sender, RoutedEventArgs e)
      {
          this.Frame.Navigate(typeof(OnePlayerFrame));
      }
  
      private void twoPlayersButton_Click(object sender, RoutedEventArgs e)
      {
          this.Frame.Navigate(typeof(TwoPlayersFrame));
      }
  </code></pre>
  
  <p>So my question is: can the visibility of the back button be handled differently on a Surface device compared to on a Desktop PC, or how can the tester otherwise get a screen shot where the back button is visible? And - do any of you have similar experiences when submitting apps to the Windows Metro store?</p>
  
  <p>I really wish Microsoft would give more detail in the test protocol, it would save time for everyone in the long run...</p>