【发布时间】:2010-11-12 04:38:36
【问题描述】:
我有一个用户控件,我想在单击和双击的情况下做一些不同的事情。我正在处理 mouseLeftButtonDown 事件:
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 并不真正关心您单击了多少次鼠标,因此即使我即将获得第二个单击事件(在双击的情况下),我也会得到第一个单击事件.有没有人想出解决这个问题的方法?我意识到我可以尝试变得聪明并设置一些计时器,以便在第二次点击进入的情况下“取消”第一次点击(我意识到这是框架无论如何都会做的事情)。如果这是唯一的答案,有谁知道我们如何查询系统以获得适当的点击延迟?
【问题讨论】:
标签: c# wpf user-controls mouse click