在第一次或最后一次单击repeatButton时采取操作

本文关键字:操作 repeatButton 单击 第一次 最后一次 | 更新日期: 2023-09-27 18:09:30

如何在RepeatButton的第一次或最后一次点击时指定操作?

的例子:

标签初始设置为0

RepeatButton被按下时,值连续递增

RepeatButton不存在时,复位为0

或者,当按钮被按下时,立即将计数器设置为0,并开始递增

在第一次或最后一次单击repeatButton时采取操作

您不需要使用RepeatButton来做您想做的事情。相反,最好使用标准的Button并处理PreviewMouseDownPreviewMouseUp事件。试试这样做:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Button Content="Press and Hold" PreviewMouseDown="Button_PreviewMouseDown" 
        PreviewMouseUp="Button_PreviewMouseUp" />
    <TextBlock Grid.Column="1" Text="{Binding YourValue}" />
</Grid>

private DispatcherTimer timer = new DispatcherTimer();
private void Button_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
    timer.Interval = TimeSpan.FromMilliseconds(100);
    timer.Tick += Timer_Tick;
    timer.Start();
}
private void Timer_Tick(object sender, EventArgs e)
{
    YourValue++;
}
private void Button_PreviewMouseUp(object sender, MouseButtonEventArgs e)
{
    timer.Stop();
}

您可以调整值增量之间的毫秒数以满足您的需求。