/// <summary> /// обработка события нажатия на кнопку "Стоп" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStop_Click(object sender, RoutedEventArgs e) { int totalTime; // общее время работы между нажатем кнопок "Старт" и "Стоп" flagStart = false; // выключаем признак нажатия кнопки "Старт" // переключаем кнопку "Старт" - доступна и непрозрачна btnStart.IsEnabled = true; btnStart.Opacity = 1.0; // переключаем кнопку "Стоп" - недоступна и полупрозрачна btnStop.IsEnabled = false; btnStop.Opacity = 0.5; // панель ввода: делаем недоступной и даем фокус WritePanel.IsEnabled = false; WritePanel.Focus(); // остановка таймера и фиксация времени в минутах stopWatch.Stop(); ts = stopWatch.Elapsed; totalTime = ts.Hours * 60 + ts.Minutes; // вычисление скорости набора символов и запись этой информации в поле "Speed" if (totalTime != 0) { Speed.Text = ((int)symbolsCounter / totalTime).ToString(); } else { Speed.Text = symbolsCounter.ToString(); } // запись значения счетчика ошибок в поле "Fails" Fails.Text = errCounter.ToString(); }
/// <summary> /// обработка события нажатия на кнопку "Старт" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnStart_Click(object sender, RoutedEventArgs e) { var rand = new Random(); int n = rand.Next(4); string phrase = exercises[n]; string nPhrase = ""; if (Registr_cbx.IsChecked == true) { phrase = phrase.Replace(phrase.Substring(0, 1), phrase.Substring(0, 1).ToUpper()); } flagStart = true; // включаем признак нажатия кнопки "Старт" // панель ввода: очищаем, делаем доступной и даем фокус WritePanel.Text = ""; WritePanel.IsEnabled = true; WritePanel.Focus(); // заполняем панель чтения в зависимости от уровня сложности for (int i = 1; i <= Difficulty.Value; i++) { nPhrase += " " + phrase; } ReadPanel.Text = nPhrase; // переключаем кнопку "Старт" - недоступна и полупрозрачна btnStart.IsEnabled = false; btnStart.Opacity = 0.5; // переключаем кнопку "Стоп" - доступна и непрозрачна btnStop.IsEnabled = true; btnStop.Opacity = 1.0; // стартуем таймер stopWatch.Start(); // обнуляем счетчики введенных символов и ошибок symbolsCounter = 0; errCounter = 0; // очищаем поля скорости и ошибок Speed.Text = ""; Fails.Text = ""; }