我有个听众
public class LeapEventListener : Listener
{
public string frame = string.Empty;
public string Frame { get { return frame; } }
public event EventHandler FrameChanged;
private void SetFrame(string value)
{
if (value == null) value = string.Empty;
if (frame == value) return;
frame = value;
var handler = FrameChanged;
if (handler != null) handler(this, EventArgs.Empty);
}
public override void OnFrame (Controller controller)
{
Frame frame = controller.Frame();
FingerList fingers = frame.Fingers;
SetFrame("Frame id: " + frame.Id);
}
public override void OnInit (Controller controller)
{
Console.WriteLine ("Initialized");
}
public override void OnConnect (Controller controller)
{
Console.WriteLine ("Connected");
//If using gestures, enable them:
controller.EnableGesture (Gesture.GestureType.TYPE_CIRCLE);
}
//Not dispatched when running in debugger
public override void OnDisconnect (Controller controller)
{
Console.WriteLine ("Disconnected");
}
}在我的Form1.cs中是全局的
Controller controller = new Controller();
LeapEventListener listener = new LeapEventListener();在公共场合,Form1()
string fingers = listener.frame;
controller.AddListener(listener);
label1.DataBindings.Add("Text", listener, "Frame");一切都很顺利,直到我把注意力从窗口移开。标签文本不再改变,如果我离开焦点,然后我回到窗口与焦点标签文本开始变化的信息,从侦听器。
当我没有对焦窗口时,为什么听者不能工作?
发布于 2015-11-05 22:39:27
Leap API有前台和后台应用的概念。默认情况下,只有前台应用程序接收跟踪数据。这是为了防止应用程序在用户与其他应用程序交互时接收输入。
如果您真的希望在后台使用框架--并且确信它不会造成问题--您可以请求后台框架策略:前景和背景应用。
当另一个非Leap应用程序有焦点时,启用此策略将获得框架。如果在启用跳跃式应用程序时需要帧,则可以使用一个无文档的策略标志(1 << 15)。
https://stackoverflow.com/questions/33546725
复制相似问题