1
我有一個用戶控件,其中我想在單擊與雙擊的情況下做一些不同的事情。我處理MouseLeftButtonDown事件本身:忽略單擊WPF
private void cueCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
switch (e.ClickCount)
{
case 1:
{
cueCanvas.Focus();
e.Handled = true;
_mouseStartPoint = Mouse.GetPosition(null);
break;
}
case 2:
{
double pos = Mouse.GetPosition(cueCanvas).X;
TimeSpan time = ConvertFromPosition(pos);
AddNewEvent(time);
e.Handled = true;
break;
}
}
}
的問題是,WPF並不真正關心你有多少次點擊鼠標,所以我得到的第一個點擊事件,即使我即將得到第二個(在雙擊的情況下)。有沒有人想出瞭解決這個問題的方法?我意識到我可以嘗試變得聰明,並設置一些定時器,以便在第二次點擊進入時我第一次點擊被「取消」(我意識到這是框架將會做的事情)。如果這是唯一的答案,有誰知道我們如何查詢系統適當的點擊延遲?
那麼我會說這不是沒有先例。嘗試雙擊Windows文件管理器中的文件,並查看它是否也每次都重命名它。 – Jeff 2010-11-11 20:57:13
但是,感謝SystemInformation提示。這實際上是我最終使用的。如果沒有人有更好的想法,我會發布代碼... – Jeff 2010-11-11 20:57:57
哦,是的,這是一些人需要的場景,毫無疑問,它有優先權。我只是說,這有點像對抗系統 - 你必須等待一兩秒才能確認沒有雙擊。您會注意到Windows資源管理器在重命名該文件之前會等待一會兒。無論如何,祝你好運。 – 2010-11-11 22:56:33