gpt4 book ai didi

c# - 处理多个悬停以单击kinect的C#中的事件

转载 作者:行者123 更新时间:2023-12-03 13:20:40 25 4
gpt4 key购买 nike

我正在用C#开发Kinect游戏,用户需要通过将两只手悬停在一个按钮上来同时单击2个按钮。

但是,使用我当前的代码,当用户将一只手悬停在一个按钮上时,其他按钮将被禁用,并且只有当第一只手停止将鼠标悬停在按钮上时,另一只手才能单击。

为了解决这个问题,我正在考虑在处理第一次点击时对第二次点击进行排队。为此,我使用了基于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)行显示错误

"The best overloaded method match for Queue.Enqueue has invalid arguments."



我猜这是因为按钮单击事件无法在以 Button类型声明的队列中排队。

您对如何创建此按钮单击事件队列或处理用户多次单击的其他方法有任何建议吗?

最佳答案

您无需将事件排队。如果isProcessing为true,则已经单击了另一个按钮,因此您可以从那时开始处理两次按钮单击的事件。

您可以测量两次单击之间的时间,以确定它是否被确认为“同时单击两个按钮”事件。

关于c# - 处理多个悬停以单击kinect的C#中的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15873689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com