private void kinectCoreWindow_PointerMoved(object sender, KinectPointerEventArgs args)
        {
            KinectPointerPoint kinectPointerPoint = args.CurrentPoint;

            if (kinectPointerPoint.Properties.IsEngaged)
            {
                // PointerPoints come with X/Y positions from 0.0 to 1.0
                // To calculate the corresponding point in pixels, we multiple by width/height of KinectRegion
                Point pointRelativeToKinectRegion = new Point(
                    kinectPointerPoint.Position.X * _kinectRegion.ActualWidth,
                    kinectPointerPoint.Position.Y * _kinectRegion.ActualHeight);

                Point relativeToElement = _kinectRegion.TranslatePoint(pointRelativeToKinectRegion, _interactiveElement);
                bool  insideElement     = (relativeToElement.X >= 0 && relativeToElement.X < _interactiveElement.ActualWidth &&
                                           relativeToElement.Y >= 0 && relativeToElement.Y < _interactiveElement.ActualHeight);
                if (insideElement)
                {
                    if (!_isHandPointerEntered)
                    {
                        _isHandPointerEntered = true;
                        _handPointerEnter?.Invoke(_interactiveElement, null);
                    }
                }
                else
                {
                    if (_isHandPointerEntered)
                    {
                        _isHandPointerEntered = false;
                        _handPointerLeave?.Invoke(_interactiveElement, null);
                    }
                }
            }
        }