我正在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