加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在按下鼠标按钮时阻止鼠标移动事件?

发布时间:2020-12-15 17:20:12 所属栏目:百科 来源:网络整理
导读:我有一个网格,我想移动鼠标.虽然我只是徘徊和移动鼠标我希望事件发生,但当我按下mousedown他们应该暂停开火.一旦我解雇了鼠标,他们就应该继续. 如果这听起来非常简单,那可能不是.过了一段时间我们提出了一个不太优雅的解决方案,但我想知道是否存在更好的东西
我有一个网格,我想移动鼠标.虽然我只是徘徊和移动鼠标我希望事件发生,但当我按下mousedown他们应该暂停开火.一旦我解雇了鼠标,他们就应该继续.

如果这听起来非常简单,那可能不是.过了一段时间我们提出了一个不太优雅的解决方案,但我想知道是否存在更好的东西.我不会用我们的黑客影响你的方法.

所以初始代码不起作用

mouseMove.TakeUntil(mouseDown).Repeat()

向左或右向TakeUntil添加.SkipUntil(mouseUp)基本上可以阻止上面的代码工作.

解决方法

这个怎么样:

bool mouseIsDown = false;
Observable.Merge(
    mouseDown.Select(_ => true),mouseUp.Select(_ => false)
).Subscribe(x => mouseIsDown = x);

mouseMove.Where(_ => !mouseIsDown);

技术上正确的答案涉及Window操作符,但这也很好并且更容易理解(我更容易编写)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读