我正在C#中开发一个Kinect游戏,其中用户需要同时单击2个按钮,方法是用一只手将鼠标悬停在一个按钮上。处理多个悬停以单击C#中kinect的事件
但是,就我现在的代码而言,当用户用一只手悬停在按钮上时,其他按钮被禁用,而另一只手只能在第一只手停在按钮上方时才能点击。
为了解决这个问题,我正在考虑在第一次点击正在处理时排队第二次点击。要做到这一点,我已经根据this link
private Queue<System.Windows.Controls.Button> Button_Queue = new Queue<System.Windows.Controls.Button>();
private bool isProcessing = false;
private void Button_Click((object sender, RoutedEventArgs e){
if(isProcessing){
Button_Queue.Enqueue(this);
}
else
{
isProcessing = true;
// code here
isProcessing = false;
while(Button_Queue.Count > 0){
Button_Queue.Dequeue().PerformClick();
}
}
用下面的代码然而,Button_Queue.Enqueue(this)
行显示错误
“为Queue.Enqueue的最佳重载的方法匹配具有无效 参数。 “
我猜这是因为按钮点击事件不能与类型Button
声明的队列中排队。
对于如何创建此按钮点击事件队列或以其他方式处理来自用户的多个点击,您有任何建议吗?
非常感谢这个建议!我发现早些时候一直在处理代码的另一位程序员一直在使用同一个变量来输入双手,这就是为什么我无法同时使用它们的原因。我现在已经改变了这一点,以便双手分开处理。 – Agrim 2013-04-09 02:32:20