C# 试图添加一个“;快进”;类似于c中按钮的函数#

C# 试图添加一个“;快进”;类似于c中按钮的函数#,c#,wpf,xaml,button,C#,Wpf,Xaml,Button,所以我有一个按钮,我试图添加一个使用System.Diagnostics.Stopwatch的功能到一个类似于快进或快退的按钮。当我按下按钮一秒钟时,我希望它做一些愚蠢的事情,比如: private void button_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { var stopWatch = Stopwatch.StartNew();

所以我有一个按钮,我试图添加一个使用
System.Diagnostics.Stopwatch
的功能到一个类似于快进或快退的按钮。当我按下按钮一秒钟时,我希望它做一些愚蠢的事情,比如:

private void button_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        var stopWatch = Stopwatch.StartNew();
        if (stopWatch.ElapsedTicks < 1000)
        {
            lbl1.Content = "Quickpress";
        }
        else if (stopWatch.ElapsedTicks >1000)
        {
            HAVE SOME ACTION HAPPEN HERE EVERY .5 SECONDS (how do i do it)
        }
    }
private void button\u MouseLeftButtonDown(对象发送器,System.Windows.Input.MouseButtonEventArgs e)
{
var stopWatch=stopWatch.StartNew();
如果(秒表的读数小于1000)
{
lbl1.Content=“Quickpress”;
}
否则如果(stopWatch.ElapsedTicks>1000)
{
在这里每隔0.5秒进行一次操作(我该怎么做)
}
}
现在,这比我想做的要简单得多,但是如果用户长时间按下按钮,我希望每0.5秒发生一次操作,我该怎么做


mousedown事件触发,它总是选择短按,即使我按下按钮。

您需要通过将现有的
秒表实例存储在类中的字段中来重用它。

可能就是您要查找的,它将封装周期性行为,但我不知道是否有办法区分短点击和按住点击

编辑:在我看来,您仍然需要一个字段(您可以使用
标记来说明状态,例如

<RepeatButton
        Click="RepeatButton_Click"
        PreviewMouseLeftButtonUp="RepeatButton_MouseLeftButtonUp"
        Interval="500" Delay="1000" Content="Buton" />
(请注意,上述代码远未清理干净,存在点击逻辑问题,例如,当鼠标向上移动时应进行重置,但只有当鼠标仍在按钮上方时才应执行短点击操作,因为现在代码已清除,因此操作将始终发生(当然,如果满足<代码>如果条件))