如何让按钮事件在按住该按钮时重复触发

本文关键字:按钮 事件 | 更新日期: 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 属性以指定重复单击操作之间的时间。这两个属性的时间都以毫秒为单位指定。

尝试做这样的事情:

  • 鼠标按钮 -->触发事件
  • 在这种情况下,设置一个你喜欢的计时器(你希望动作每秒发生多少次?
  • 在循环中,每次计时器触发时,检查鼠标按钮是否仍然"向下"。如果是,请开火。如果没有,请不要开火。
  • 您可能希望添加另一个鼠标按钮向上的事件,这将停止计时器,因此它不会再触发(或绑定到一个布尔值,它会让您知道您是否要触发......由你决定.

希望对您有所帮助。