我需要在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/