所以我在WinRT UserControl上有一个按钮,我想按住按钮时增加或减少一个整数值(CurrentValue)。
我最终得到了下面的这个实现,它有效,但看起来不好或者没关系?
我搜索了一个要使用的事件,但是我在使用click并设置button.clickmode按下时卡住了。
我使用bool _increasePushed跟踪是否已经推入,所以我没有得到多个事件触发器。
private bool _increasePushed;
private const int PushDelay = 200;
private async void ButtonIncreaseClick(object sender, RoutedEventArgs e)
{
var button = sender as Button;
if (button == null) return;
if (_increasePushed)
{
return;
}
_increasePushed = true;
while (button.IsPressed)
{
CurrentValue++;
await Task.Delay(PushDelay);
}
_increasePushed = false;
}
UserControl上的XAML
<Button x:Name="buttonIncrease" Content="Bla bla"
Click="ButtonIncreaseClick" ClickMode="Press" />
答案 0 :(得分:2)
更好的方法是使用RepeatButton,它正是您尝试复制的内容。它有一个Delay属性来等待第一次重复单击,以及一个Interval属性来控制Click事件的引发频率。