当前上下文中不存在名称“关节”,并且从不使用“图”

时间:2014-08-25 08:02:10

标签: c# wpf-controls

我遇到此错误的问题"名称'关节'在当前背景下不存在" 。我正在尝试学习一本用kinect跟踪骨骼的书中的例子。我已经按照所有步骤进行了操作,但我无法理解为什么会出现此错误。也许了解所有代码的人可以帮助我。

这是我的代码:

        private void KinectDevice_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
        {
           using(SkeletonFrame frame = e.OpenSkeletonFrame())
           {
               if (frame != null)
               {
                   Polyline figure;
                   Brush userBrush;
                   Skeleton skeleton;
                   LayoutRoot.Children.Clear();
                   frame.CopySkeletonDataTo(this._FrameSkeletons);

                   for(int i = 0; i < this._FrameSkeletons.Length; i++)
                   {
                       skeleton = this._FrameSkeletons[i];
                       if(skeleton.TrackingState == SkeletonTrackingState.Tracked)
                       {
                           userBrush = this._SkeletonBrushes[i % this._SkeletonBrushes.Length];

                           //Draws the skeleton’s head and torso
                           joints = new [] { JointType.Head, JointType.ShoulderCenter,
                           JointType.ShoulderLeft, JointType.Spine,
                           JointType.ShoulderRight, JointType.ShoulderCenter,
                           JointType.HipCenter, JointType.HipLeft,
                           JointType.Spine, JointType.HipRight,
                           JointType.HipCenter };

                           LayoutRoot.Children.Add(CreateFigure(skeleton, userBrush, joints));

                           //Draws the skeleton’s left leg
                           joints = new [] { JointType.HipLeft, JointType.KneeLeft,
                           JointType.AnkleLeft, JointType.FootLeft };

                           LayoutRoot.Children.Add(CreateFigure(skeleton, userBrush, joints));

                           //Draws the skeleton’s right leg
                           joints = new [] { JointType.HipRight, JointType.KneeRight, JointType.AnkleRight, JointType.FootRight };
                           LayoutRoot.Children.Add(CreateFigure(skeleton, userBrush, joints));

                           //Draws the skeleton’s left arm
                           joints = new [] { JointType.ShoulderLeft, JointType.ElbowLeft, JointType.WristLeft, JointType.HandLeft };

                           LayoutRoot.Children.Add(CreateFigure(skeleton, userBrush, joints));

                           //Draws the skeleton’s right arm
                           joints = new [] { JointType.ShoulderRight, JointType.ElbowRight, JointType.WristRight, JointType.HandRight };
                           LayoutRoot.Children.Add(CreateFigure(skeleton, userBrush, joints));

                       }
                   }
               }
           }
       }

1 个答案:

答案 0 :(得分:0)

您需要对C#基础知识有所了解。 在C#中,您必须在使用之前定义变量。 在这种情况下,您要在告诉计算机“关节”是什么之前更改“关节”的值。

我相信通过其他字段添加此内容可以解决您的问题:

JointType[] joints;

至于“图永远不会被使用”,这不是一个真正的错误...... 这只是一个警告,告诉你你的代码没有做任何事情。