对repeatButton的第一次或最后一次点击采取行动

时间:2014-06-20 18:12:11

标签: c# wpf

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

示例:

标签最初设置为0

按下RepeatButton时,值会连续递增

当剩下RepeatButton时,该值将重置为0

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

1 个答案:

答案 0 :(得分:1)

您不需要使用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();
}

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