そのため、WinRT UserControlにボタンがあり、ボタンを押している間、整数値(CurrentValue)を増減します。
私は以下のこの実装に行き着きました。これは機能しますが、見栄えがよくないか、大丈夫ですか?
使用するイベントを検索しましたが、クリックを使用して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" />