/// <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();
 }