Kinect HandPointer从屏幕上松开手柄

时间:2013-12-13 12:01:36

标签: c# kinect kinect-sdk kinect-interaction

我正在使用kinect sdk 1.8编写一个应用程序,我已经实现了一个kinect scrollviewer和一个自定义“HoverButton”,每当手指针悬停在具有属性IsInGripInteraction == false的按钮上时,它就会启动一个加载器。一切正常,直到我尝试这种行为:制作一个Grip滚动kinectScrollviewer内容,仍然在功能(手指针图像,天蓝色和关闭...)夹具交互我把手伸出屏幕。执行此操作后,我将手重新进入屏幕,但HandPointer已打开(默认打开手形图像)。此时,handpointer似乎在IsInGripInteraction == True但是使用默认的打开图像,我的加载程序无法识别交出任何按钮...为了使事情再次起作用,我必须关闭并打开我的手。有什么解决方案吗?我可以在从屏幕退出之前阻止kinect手形指针?或者我可以强制更新HandPointer的Grip状态?

修改

我找到了真正的原因,kinectregion.handpointers [indexofactualhand] .GetIsOver(UIElement)的方法GetIsOver是什么松散的反应性。有时当我的手滚动屏幕时,方法总是返回false,直到我再次关闭并再次打开我的手。这是一种刷新运行时handPointer的方法吗?

1 个答案:

答案 0 :(得分:0)

我最近遇到了同样的问题。尝试将此添加到您与之交互的UIElement中。

KinectRegion.AddHandPointerEnterHandler(this, OnHandPointerEnter);

private void OnHandPointerEnter(object sender, HandPointerEventArgs e)
{
    e.HandPointer.Capture(this);
}

为我工作。

相关问题