在按下鼠标按钮后检查时间,然后再按上鼠标按钮
本文关键字:按钮 鼠标 然后 检查 时间 | 更新日期: 2023-09-27 18:04:19
我想这一定是一个小问题,但是我想不清楚是怎么回事。有人有主意吗?
我在画布上有一些边界(充满图像),我想点击边界(我用OnMouseLeftButtonDown这样做),边界变成红色(这样用户就知道他点击了哪个对象),然后,1或2秒后,当鼠标按钮仍然按下,拖放应该开始。
起初我在按钮内部有边框,但是clickevent似乎与dragevent冲突。所以我去掉了按钮,直接处理边框内的所有内容,效果也很好。但是我怎么才能在按下鼠标按钮后开始拖动,并在时间用完之前按下鼠标按钮时停止拖动呢?
谁有一个干净的解决方案?private void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
_source = sender as Border;
Mouse.Capture(_source);
}
private void OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
_source = null;
Mouse.Capture(null);
}
和在事件OnMouseMove中,你可以根据鼠标位置修改边框边距,但在检查_source是否为边框类型之后。
var position = e.GetPosition(Canvas);
编辑:此时,你可以添加stopwatch_watch属性,并在OnMouseLeftButtonDown事件处理程序中,你可以这样做:
_watch = Stopwatch.StartNew();
在OnMouseLeftButtonUp: _watch.Stop();
和OnMouseMove在你的代码之前:
while (_watch.ElapsedMilliseconds < 2000 && _watch.IsRunning)
{
Thread.Sleep(100);
}