Рассмотрим следующий код, у меня есть текстовый блок, который является кнопкой «вкл / выкл» в WPF. Это просто текст внутри эллипса, который говорит ON / OFF. Когда пользователь нажимает кнопку и удерживает левую кнопку мыши в течение ОДНОЙ секунды, он выполняет код включения устройства, если устройство еще не включено. Если пользователь удерживает кнопку ON / OFF в течение трех или более секунд (удерживая левую кнопку мыши нажатой), устройство выключится.
Несколько проблем, по которым я скучаю по лодке.
1. Событие галочки не срабатывает, пока нажата кнопка мыши, несмотря на то, что таймер запущен.
2. Цикл do / while никогда не завершается, несмотря на нажатие кнопки
Спасибо!
public int TimerCount = 0;
private void ButtonPressTimer(object sender, EventArgs e)
{
TimerCount = TimerCount + 1;
}
private void txtBlockOnOff_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
var buttonPressTimer = new DispatcherTimer(new TimeSpan(0, 0, 0, 1), DispatcherPriority.Normal, ButtonPressTimer, this.Dispatcher);
do
{
if (!buttonPressTimer.IsEnabled)
buttonPressTimer.Start();
}
while (e.ButtonState == MouseButtonState.Pressed);
buttonPressTimer.Stop();
if (TimerCount >= 3)
{
//do something here
}
else
{
//do something different here
}
}