예제 #1
0
        public MainWindow()
        {
            InitializeComponent();

            //test
            ctrOne = new StepOneControl(this);
            ctrTwo = new StepTwoControl(this) { Visibility = Visibility.Collapsed };
            ctrThree = new StepThreeControl(this) { Visibility = Visibility.Collapsed };
            ctrFour = new StepFourControl(this) { Visibility = Visibility.Collapsed };
            ctrFive = new StepFiveControl(this) { Visibility = Visibility.Collapsed };
            media.MediaEnded += (s, e) =>
            {
                media.Source = new Uri(Appconfig.MP3);
                media.Play();
            };
            this.Loaded += (s, e) =>
            {
                _logger.Debug("................启动......................");
                media.Source = new Uri(Appconfig.MP3);
                media.Play();
            };

            gestureControl.OnKinectGestureDetected += gestureControl_OnKinectGestureDetected;

            ctrOne.SceneOver += OnSceneOver;
            ctrTwo.SceneOver += OnSceneOver;
            ctrThree.SceneOver += OnSceneOver;
            ctrFour.SceneOver += OnSceneOver;
            ctrFive.SceneOver += OnSceneOver;
            ctrOne.LayoutTransform = ctrTwo.LayoutTransform = ctrThree.LayoutTransform = ctrFour.LayoutTransform = ctrFive.LayoutTransform = this.LayoutTransform =
                new ScaleTransform(SystemParameters.PrimaryScreenWidth / 1920.0d, SystemParameters.PrimaryScreenHeight / 1080d);
            layoutGrid.Children.Add(ctrOne);
            layoutGrid.Children.Add(ctrTwo);
            layoutGrid.Children.Add(ctrThree);
            layoutGrid.Children.Add(ctrFour);
            layoutGrid.Children.Add(ctrFive);

            controls.Add(ctrOne);
            controls.Add(ctrTwo);
            controls.Add(ctrThree);
            controls.Add(ctrFour);
            controls.Add(ctrFive);

            _currentControl = ctrOne;

            //显示kinect可视窗口
            string[] kv = ConfigurationManager.AppSettings["SkeletonInfo"].Split(',');
            double kWidth = Convert.ToDouble(kv[0]);
            double kHeight = Convert.ToDouble(kv[1]);
            double kLeft = Convert.ToDouble(kv[2]);
            double kTop = Convert.ToDouble(kv[3]);
            double kAlpha = Convert.ToDouble(kv[4]);

            KinectColorViewer kc2 = new KinectColorViewer();
            kc2.Opacity = kAlpha;
            kc2.Width = kWidth;
            kc2.Height = kHeight;
            Canvas.SetLeft(kc2, kLeft);
            Canvas.SetTop(kc2, kTop);
            kc2.KinectSensorManager = gestureControl.KinectSensorManager;
            this.root.Children.Add(kc2);

            KinectSkeletonViewer ks = new KinectSkeletonViewer();
            ks.Opacity = kAlpha;
            ks.Width = kWidth;
            ks.Height = kHeight;
            Canvas.SetLeft(ks, kLeft);
            Canvas.SetTop(ks, kTop);
            ks.KinectSensorManager = gestureControl.KinectSensorManager;
            this.root.Children.Add(ks);
        }
예제 #2
0
 void OnSceneOver(object sender, EventArgs e)
 {
     var userControl = sender as UserControl;
     if (userControl != null)
     {
         userControl.Visibility = Visibility.Collapsed;
         var lastControl = userControl as IDirectionMove;
         if (lastControl != null) lastControl.Reset();
         var index = controls.IndexOf(userControl);
         index++;
         var i = index % 5;
         var control = controls[i];
         control.Visibility = Visibility.Visible;
         _currentControl = control as IDirectionMove;
         if (_currentControl != null)
             _currentControl.Initial();
         if (sender as StepFourControl != null)
             ctrFive.Init();
     }
 }