0

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

编辑

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

4

1 回答 1

0

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

KinectRegion.AddHandPointerEnterHandler(this, OnHandPointerEnter);

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

为我工作。

于 2014-09-25T22:31:40.737 回答