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