Here are a few minor suggestions in your code:
SkeletonFrame SFrame = e.OpenSkeletonFrame();
if (SFrame == null) return;
Skeleton[] skeletons = new Skeleton[SFrame.SkeletonArrayLength];
SFrame.CopySkeletonDataTo(skeletons);
int firstSkeleton = Skeletons[0].TrackingId;
sensor.SkeletonStream.ChooseSkeletons(firstSkeleton);
if (SkeletonTrackingState.Tracked == firstSkeleton.TrackingState)
Making Skeletons renamed as skeletons avoids potential naming conflict with a Kinect namespace object of the same name.
Data of type int can never be null. Your null check was also AFTER you already used to variable. Removed the redundant code.
When calling a method you pass your variable you do not specify a type then the variable.