private void ShowRequestedPage() { NavigationContext.QueryString.TryGetValue("Tab", out currentTab); currentTab = currentTab ?? "Load"; switch (currentTab) { case "Scan": LoadingPanel.Visibility = Visibility.Collapsed; ScanPanel.Visibility = Visibility.Visible; WorkPanel.Visibility = Visibility.Collapsed; while (NavigationService.BackStack.Any()) { NavigationService.RemoveBackEntry(); } break; case "Drop": LoadingPanel.Visibility = Visibility.Collapsed; ScanPanel.Visibility = Visibility.Collapsed; WorkPanel.Visibility = Visibility.Visible; LoadPhoto(LatestPhotoFilename).ContinueWith(SetupDropTab); // for reasons completely past my understanding, we need to do this inside the UI thread for it to work. I thought // OnNavigatedTo was already on the ui thread? Ahwell. Deployment.Current.Dispatcher.BeginInvoke(() => { Filename.Focus(); Filename.SelectAll(); }); break; case "Load": default: LoadingPanel.Visibility = Visibility.Visible; ScanPanel.Visibility = Visibility.Collapsed; WorkPanel.Visibility = Visibility.Collapsed; break; } }