Windows runtime 按下按钮时逻辑循环的更好方式?
所以我在WinRT用户控件上有一个按钮,我想在按住按钮的同时增加或减少一个整数值(CurrentValue) 我在下面完成了这个实现,它可以工作,但看起来不太好,或者还可以吗 我搜索了一个要使用的事件,但在使用“单击”并将按钮设置为“按下”时遇到了问题 我使用bool_increasePushed来跟踪是否已经被推入,这样我就不会得到多个事件触发器Windows runtime 按下按钮时逻辑循环的更好方式?,windows-runtime,winrt-xaml,winrt-async,Windows Runtime,Winrt Xaml,Winrt Async,所以我在WinRT用户控件上有一个按钮,我想在按住按钮的同时增加或减少一个整数值(CurrentValue) 我在下面完成了这个实现,它可以工作,但看起来不太好,或者还可以吗 我搜索了一个要使用的事件,但在使用“单击”并将按钮设置为“按下”时遇到了问题 我使用bool_increasePushed来跟踪是否已经被推入,这样我就不会得到多个事件触发器 private bool _increasePushed; private const int PushDelay = 200;
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" />
更好的方法是使用一个与您试图复制的完全相同的方法。它有一个等待第一次重复单击的延迟属性,以及一个控制触发单击事件频率的间隔属性