private void OnSkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
            using (var frame = e.OpenSkeletonFrame())
            {
                if (frame.SkeletonArrayLength == 0)
                    return;

                var skeletons = new Skeleton[frame.SkeletonArrayLength];
                frame.CopySkeletonDataTo(skeletons);

                if (skeletons.All(s => s.TrackingState == SkeletonTrackingState.NotTracked))
                    return;

                var skeleton = FindSkeleton(skeletons);
                var scaled = ScaleSkeleton(skeleton);

                OnSkeletonFrameRead(skeleton.TrackingId, scaled, frame.Timestamp);
            }
        }