所以我在 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;
}
用户控件上的 XAML
<Button x:Name="buttonIncrease" Content="Bla bla"
Click="ButtonIncreaseClick" ClickMode="Press" />