我在我的WPF應用程序中有一個列表框,當用戶雙擊一個項目時,我更改列表的內容(如目錄導航)。在某些情況下,雙擊是有意義的,然後立即再次雙擊,因爲您知道同一位置會出現什麼情況。你會希望你可以通過快速連續點擊四次來完成這個任務(這應該意味着「兩次雙擊」)。我怎樣才能重複雙擊沒有WPF改變一些三擊?
但這並不奏效。如果您點擊足夠快的速度,直到WPF發送另一個雙擊事件之前的第五次或第六次點擊!
它看起來像WPF內置支持三擊,有時甚至更多,如果你點擊足夠快。我跑了一個簡單的例子來證實這一點:
<ListBox PreviewMouseLeftButtonDown="ListBox_PreviewMouseLeftButtonDown"/>
private void ListBox_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Trace.WriteLine("ClickCount = " + e.ClickCount);
}
當我運行它,點擊速射,我得到這樣的輸出:
ClickCount = 1
ClickCount = 2
ClickCount = 3
ClickCount = 1
ClickCount = 2
ClickCount = 3
ClickCount = 4
ClickCount = 1
ClickCount = 2
ClickCount = 3
有時它計算到3,然後復位;有時它在復位之前計數到4。我無法達到它的最大值5.
但後來我進入控制面板>鼠標,並將雙擊速度更改爲最慢的設置。然後,我可以可靠地將它重新計數到10,如果我真的預訂它,可以達到11或12。所以顯然這是關於在您的系統配置的「雙擊」間隔之前您可以多快點擊一下。如果您在該時間間隔過去之前多次點擊,則會獲得「三擊」或「四擊」或更多。
但我不想想要三擊或四擊 - 特別是如果他們不可能通過某些雙擊配置獲得。我希望其他每次點擊都是雙擊事件(只要它們連續快速移動,鼠標未超過閾值等)
有沒有什麼辦法可以獲得WPF當我點擊快速消息時,爲我提供正常的雙擊事件(每隔一次點擊事件)?
由於您設法計算點擊次數,爲什麼不在'ClickCount%2 == 0'時做任何您需要做的事情? – madd0 2011-03-10 00:29:23
@ madd0,再看看我發佈的輸出。 ClickCount不會增加。考慮到上面的示例輸出,您將對第2次,第5次,第7次和第10次點擊作出迴應。偶爾它會得到理想的行爲,但只是偶然。 – 2011-03-10 13:44:27