public void Page_Loaded(object sender, RoutedEventArgs e)
        {
            InitializeNavHead();

            mainWindowClient = this.Parent as MainWindow;

            kinectManagerClient = mainWindowClient.KinectManagerClient;
            if (kinectManagerClient.kinectSensor != null)
            {
                kinectManagerClient.multiSourceReader.MultiSourceFrameArrived += Reader_MultiSourceFrameArrived;

                colorWidth  = KinectExtensions.FrameDimensions[SpaceMode.Color].Item1;
                colorHeight = KinectExtensions.FrameDimensions[SpaceMode.Color].Item2;
                depthWidth  = KinectExtensions.FrameDimensions[SpaceMode.Depth].Item1;
                depthHeight = KinectExtensions.FrameDimensions[SpaceMode.Depth].Item2;

                colorMappedToDepthSpace = new DepthSpacePoint[(int)(colorWidth * colorHeight)];
                lastNotNullDepthData    = new ushort[(int)depthWidth * (int)depthHeight];
                lastNotNullColorData    = new byte[(int)colorWidth * (int)colorHeight * PixelFormats.Bgr32.BitsPerPixel / 8];
            }
            else
            {
                UiHelper.NotifyUser("Kinect not available!");
            }

            //kinectSensor.Open();
            //jcWall = new KinectWall(canvas, kinectSensor.CoordinateMapper);
            //rocksOnWallViewModel = new RocksOnWallViewModel(canvas, kinectSensor.CoordinateMapper);

            jcWall = new KinectWall(canvas, kinectManagerClient.kinectSensor.CoordinateMapper);
            rocksOnWallViewModel = new RocksOnWallViewModel(canvas, kinectManagerClient.kinectSensor.CoordinateMapper);

            InitializeCommands();
        }
        public void Page_Loaded(object sender, RoutedEventArgs e)
        {
            kinectSensor.Open();
            jcWall = new KinectWall(canvas, kinectSensor.CoordinateMapper);
            rocksOnWallViewModel = new RocksOnWallViewModel(canvas);

            InitialiseCommands();
        }
        private void Page_Unloaded(object sender, RoutedEventArgs e)
        {
            kinectManagerClient.multiSourceReader.MultiSourceFrameArrived -= Reader_MultiSourceFrameArrived;

            kinectManagerClient.multiSourceFrame = null;

            colorMappedToDepthSpace = null;
            lastNotNullColorData    = null;
            lastNotNullDepthData    = null;
            jcWall = null;
            GC.Collect();
        }
        public void Page_Loaded(object sender, RoutedEventArgs e)
        {
            kinectManagerClient = (this.Parent as MainWindow).KinectManagerClient;
            if (kinectManagerClient.kinectSensor != null)
            {
                kinectManagerClient.multiSourceReader.MultiSourceFrameArrived += Reader_MultiSourceFrameArrived;
                //mulSourceReader.MultiSourceFrameArrived += Reader_MultiSourceFrameArrived;

                colorWidth  = KinectExtensions.FrameDimensions[SpaceMode.Color].Item1;
                colorHeight = KinectExtensions.FrameDimensions[SpaceMode.Color].Item2;
                depthWidth  = KinectExtensions.FrameDimensions[SpaceMode.Depth].Item1;
                depthHeight = KinectExtensions.FrameDimensions[SpaceMode.Depth].Item2;

                colorMappedToDepthSpace = new DepthSpacePoint[(int)(colorWidth * colorHeight)];
                lastNotNullDepthData    = new ushort[(int)depthWidth * (int)depthHeight];
                lastNotNullColorData    = new byte[(int)colorWidth * (int)colorHeight * PixelFormats.Bgr32.BitsPerPixel / 8];

                bitmap = new WriteableBitmap((int)depthWidth, (int)depthHeight, 96.0, 96.0, PixelFormats.Bgra32, null);

                // Calculate the WriteableBitmap back buffer size
                bitmapBackBufferSize = (uint)((bitmap.BackBufferStride * (bitmap.PixelHeight - 1)) + (bitmap.PixelWidth * bytesPerPixel));
            }
            else
            {
                Console.WriteLine("Kinect not available!");
            }

            //kinectSensor.Open();
            //jcWall = new KinectWall(canvas, kinectSensor.CoordinateMapper);
            //rocksOnWallViewModel = new RocksOnWallViewModel(canvas, kinectSensor.CoordinateMapper);


            jcWall = new KinectWall(canvas, kinectManagerClient.kinectSensor.CoordinateMapper);
            rocksOnWallViewModel = new RocksOnWallViewModel(canvas, kinectManagerClient.kinectSensor.CoordinateMapper);

            InitialiseCommands();
        }