如何让按钮事件在按住该按钮时重复触发
本文关键字:按钮 事件 | 更新日期: 2023-09-27 17:56:33
我希望能够按住一个按钮(即MouseLeftButtonDown)并让它的事件重复触发。
我在 MouseLeftButtonDown 事件中编写 Mouse.Capture(button),在 MouseLeftButtonUp 事件中编写 Mouse.Capture(null)。
如果我按住鼠标按钮,鼠标左键只会触发一次。 我不是通过设置断点而是通过使用 Console.Writeline() 来看到这一点。
我有这个代码在某个时候工作。然后我重构并将鼠标事件放在接口中。 除了现在这个重复动作之外,一切仍然有效!
更新 - 更多信息:
这是特定类中的 before-call:
Mouse.Capture(sender as MenuGelButton)
MenuGelButton是省略号和文本的xaml创建,以制作一个很酷的按钮。
自从添加接口(这是多个 xaml 创建的通用代码,所有这些创建都继承了接口)以来,下面是接口内的当前调用:
Mouse.Capture(sender as UIElement)
更新更新:
鼠标单击事件不是为自动重复触发而设计的。 键盘事件是。 我在键盘事件而不是鼠标事件上工作(并且它继续工作)。 很抱歉造成混乱...
我相信你正在寻找Microsoft的RepeatButton。你可以在 XAML 中使用它,就像使用按钮一样,它会多次触发单击事件。
从他们的文档中:
重复按钮是一个按钮,它从按下到释放时重复引发单击事件。设置 Delay 属性以指定 RepeatButton 在按下后在开始重复单击操作之前等待的时间。设置 Interval 属性以指定重复单击操作之间的时间。这两个属性的时间都以毫秒为单位指定。
尝试做这样的事情:
- 鼠标按钮 -->触发事件
- 在这种情况下,设置一个你喜欢的计时器(你希望动作每秒发生多少次?
- 在循环中,每次计时器触发时,检查鼠标按钮是否仍然"向下"。如果是,请开火。如果没有,请不要开火。
- 您可能希望添加另一个鼠标按钮向上的事件,这将停止计时器,因此它不会再触发(或绑定到一个布尔值,它会让您知道您是否要触发......由你决定.
希望对您有所帮助。