我需要在Kinect中创建一个光标,但是我不知道从哪里开始。我需要使用WPF和C#进行制作。光标应为手形,当我将鼠标悬停在元素上时,将出现“加载”圆圈,当其“加载”时,应在悬停的元素上触发点击事件。
我相信你们都对此很熟悉。

如果有人可以给我写一些指示,例如如何做到这一点,那将有很大的帮助。

最佳答案

这是一个可以帮助您的代码段:

using Microsoft.Research.Kinect.Nui;

Runtime nui = Runtime.Kinects[0];
nui.Initialize(RuntimeOptions.UseSkeletalTracking);
nui.SkeletonFrameReady += new EventHandler<SkeletonFrameReadyEventArgs>(nui_SkeletonFrameReady);

void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e)
{
    SkeletonFrame sf = e.SkeletonFrame;
    SkeletonData d = (from s in sf.Skeletons
                      where s.TrackingState == SkeletonTrackingState.Tracked
                      select s).FirstOrDefault();

     if (d != null)
     {
          SetHandPosition(imageCursor, d.Joints[JointID.HandLeft]);
     }
}

void SetHandPosition(FrameworkElement e, Joint joint)
{
    Joint scaledJoint = Coding4Fun.Kinect.Wpf.SkeletalExtensions.ScaleTo(joint, 600, 400, 0.75f, 0.75f);

    Canvas.SetLeft(e, scaledJoint.Position.X);
    Canvas.SetTop(e, scaledJoint.Position.Y);
}


如果要使光标在元素上不同,则只需转到elements属性并为该元素设置光标。在Visual Studio中,您可以在elements属性中选择一个光标。

要在元素上单击鼠标悬停,必须实现MouseEnter事件

private void button1_MouseEnter(object sender, MouseEventArgs e)
{
....
}


以下是一些有关此的信息:

button1.PerformClick() in wpf

关于c# - Kinect自定义光标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9167720/

10-17 00:34