我需要在Kinect中创建一个光标,但我不知道从哪里开始。我需要使用WPF和C#。光标应该是手形,当我将鼠标悬停在元素上时,应该出现“加载”圆圈,并且当它“加载”时,它应该触发悬停元素上的点击事件。我相信你们都熟悉这一点。Kinect自定义光标
如果有人可以给我写信给我一些指导哦,如何实现这一点会有很大的帮助。
我需要在Kinect中创建一个光标,但我不知道从哪里开始。我需要使用WPF和C#。光标应该是手形,当我将鼠标悬停在元素上时,应该出现“加载”圆圈,并且当它“加载”时,它应该触发悬停元素上的点击事件。我相信你们都熟悉这一点。Kinect自定义光标
如果有人可以给我写信给我一些指导哦,如何实现这一点会有很大的帮助。
下面的代码片段,可以帮助你:
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);
}
如果你希望你的光标移动到不同的盘旋元素上,然后只要到元素的属性,并设置光标为元素。在Visual Studio中,您可以在元素属性中选择一个游标。
要在悬停点击过的元素,你必须执行MouseEnter事件
private void button1_MouseEnter(object sender, MouseEventArgs e)
{
....
}
下面是一些相关信息看:
下面是使用一个很好的解决方案官方的SDK,但即使你不是,它可以非常有用(它是我的):
你应该看看th e(免费)代码在这里Beginning Kinect Programming with the Microsoft Kinect SDK sample code你点击“源代码/下载”,你将在示例中感兴趣的是第6章(文件夹的名称)。
基本上他们正在使用一个静态类KinectInput
,允许提出了新的事件像KinectCursorEnterEvent
,有一个光标管理KinectCursorManager
这确实几乎所有拿到手的位置/更新光标......和他们使用的装饰器放光标,您想要作为游标的FrameworkElement
。
他们实现你正在谈论的HoverButton
。它会在计时器耗尽后触发点击事件(发生时发生定时器KinectCursorEnterEvent
)。他们提出的解决方案非常优雅,并且可以轻松实现很好的控制。 您可以轻松地修改代码来处理两个光标有一个枚举CursorSide
(这是增值的Kinect的的,是不是?):
public enum CursorSide
{
Left,
Right
}
只有modifyong的KinectCursorManager
有容量2的词典,和枚举是关键,和光标下具有对elemtn的指针为每个手:
private Dictionary<CursorSide, CursorAdorner> _cursorAdorner;
private UIElement _lastElementOverRightHand;
private UIElement _lastElementOverLeftHand;
但在此之前必须消除执行的是代码的部分选举主手(基本上是最靠近Kinect的手)。
我希望这可以帮助别人: - ]
这本书很有意思,你可以买几块钱。
我有更大的问题,世界粮食计划署比Kinect的本身,但感谢帮助:) – kr85 2012-02-06 23:10:14
这里是一个视频教程,其中有人正在做的事情光标(未悬停部分):http://research.microsoft.com/应用程序/视频/?ID = 152249 – 2012-02-07 06:55:44