void KinectSensors_StatusChanged(object sender, StatusChangedEventArgs e)
        {
            // Ensure the current sensor is still connected.
            if (this.sensor != null && this.sensor.Status != KinectStatus.Connected)
            {
                this.sensor = null;
            }

            foreach (var potentialSensor in KinectSensor.KinectSensors)
            {
                if (potentialSensor.Status == KinectStatus.Connected)
                {
                    this.sensor = potentialSensor;
                    break;
                }
            }

            if (null != this.sensor)
            {
                // Notify user kinect is ready
                this.statusBarText.Text = Properties.Resources.KinectReady;

                // Enable skeleton processing
                SkeletonFrameProcessor skelProc = new SkeletonFrameProcessor();
                skelProc.Register(this.sensor);
                skelProc.Start();
                skelProc.SetTargetImage(this.frameImage);

                // Enable gesture processing
                this.recognizer = new GestureRecognizer();
                this.recognizer.Register(this.sensor);

                // Attempt to load up configs from last time
                this.gestures = BinarySerializer.DeserializeObject<GesturePack>(Properties.Resources.TempFile);
                if (this.gestures == null)
                {
                    this.gestures = new GesturePack();
                    // this.gestures.MassExecute(RegistrationVisitor.Singleton, this.recognizer);
                }
                this.gestures.MassExecute(RegistrationVisitor.Singleton, this.recognizer);

                // Start the sensor
                try
                {
                    this.sensor.Start();
                }
                catch (IOException)
                {
                    this.statusBarText.Text = Properties.Resources.KinectInUse;
                    this.sensor = null;
                }
            }

            if (null == this.sensor)
            {
                this.statusBarText.Text = Properties.Resources.NoKinectReady;
            }
        }
        private void LoadButtonClicked(object sender, RoutedEventArgs e)
        {
            System.Windows.Forms.OpenFileDialog openDialog = new System.Windows.Forms.OpenFileDialog();
            openDialog.InitialDirectory = Convert.ToString(Environment.SpecialFolder.MyDocuments);
            openDialog.Filter = Properties.Resources.NuiConfigFilter;

            if (openDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                this.gestures = BinarySerializer.DeserializeObject<GesturePack>(openDialog.FileName);
            }
        }