gpt4 book ai didi

c# - 按下鼠标按钮时如何防止 mousemove 事件?

转载 作者:行者123 更新时间:2023-11-30 12:34:18 24 4
gpt4 key购买 nike

我有一个网格,我想将鼠标移到它上面。当我只是悬停和移动鼠标时,我希望触发事件,但是当我按下 mousedown 时,它们应该暂停触发。一旦我触发 mouseup,它们应该会继续。

如果这听起来 super 简单,那可能并非如此。一段时间后,我们想出了一个不太优雅的解决方案,但我想知道是否存在更好的解决方案。我不会用我们的技巧影响您的方法。

所以初始代码不起作用

mouseMove.TakeUntil(mouseDown).Repeat()

向左或向右添加 .SkipUntil(mouseUp)TakeUntil 基本上完全停止上面的代码工作。

最佳答案

这个怎么样:

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

mouseMove.Where(_ => !mouseIsDown);

技术上正确的答案涉及 Window 运算符,但这同样好,更容易理解(对我来说也更容易编写)

关于c# - 按下鼠标按钮时如何防止 mousemove 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7492644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com