按住所述按钮时如何让按钮事件重复发射

时间:2016-07-12 22:37:46

标签: c# wpf

我希望能够按住一个按钮(即MouseLeftButtonDown)并重复它的事件。

我在MouseLeftButtonDown事件中编写Mouse.Capture(按钮),在MouseLeftButtonUp事件中编写Mouse.Capture(null)。

如果我按住鼠标按钮,MouseLeftButtonDown只会触发一次。我可以通过设置断点但使用Console.Writeline()来看到这一点。

我有一些代码正在运行。然后我重构并将鼠标事件放在一个接口中。除了这个重复动作之外,一切仍然有效!

更新 - 更多信息:

以下是特定课程中的之前通话:

Mouse.Capture(发件人为MenuGelButton)

MenuGelButton是一个椭圆和文本的xaml创建,可以制作一个很酷的按钮。

由于添加了界面(这是几个xaml创建的公共代码,所有这些都继承了界面),这里是界面内的当前调用:

Mouse.Capture(发件人为UIElement)

更新更新:

鼠标点击事件不是为了自动重复点火而设计的。键盘事件是。我在键盘事件而不是鼠标事件上工作(它继续工作)。对不起,混乱......

2 个答案:

答案 0 :(得分:1)

尝试做这样的事情:

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

希望它有所帮助。

答案 1 :(得分:0)

我相信您正在寻找Microsoft的RepeatButton。您可以像使用Button一样在XAML中使用它,并且它会多次触发click事件。

从他们的文档中

  

RepeatButton是一个按钮,从按下到释放,该按钮会反复引发Click事件。设置Delay属性,以指定在重复按钮被按下之前开始重复单击动作之前,RepeatButton等待的时间。设置时间间隔属性以指定两次重复单击操作之间的时间。这两个属性的时间均以毫秒为单位。