/// <summary> /// Handle a button click from the wrap panel. /// </summary> /// <param name="sender">Event sender</param> /// <param name="e">Event arguments</param> private void CategorySelected(object sender, RoutedEventArgs e) { var button = (KinectTileButton)e.OriginalSource; selectedCategoryName = button.Label as string; // add loading element var loadScreen = new LoadScreen(); kinectRegionGrid.Children.Add(loadScreen); Grid.SetColumn(loadScreen, 0); Grid.SetColumnSpan(loadScreen, 2); Thread thread = new Thread(new ThreadStart(() => { category = new BrowseCategory(selectedCategoryName); category.Show(); Application.Current.Dispatcher.Invoke(() => { // this.Close(); }); System.Windows.Threading.Dispatcher.Run(); })); thread.SetApartmentState(ApartmentState.STA); thread.IsBackground = true; thread.Start(); e.Handled = true; }
/// <summary> /// Handle going back (back button). /// </summary> /// <param name="sender">Event sender</param> /// <param name="e">Event arguments</param> private void GoBackButtonClick(object sender, RoutedEventArgs e) { // takes a lot of time + the left and right handlers are 'destroyed' var imageViewer = new BrowseCategory(category); imageViewer.Show(); this.Close(); }