2015-03-06 2 views
0

Мне не удалось найти в Интернете то, что я пытаюсь выполнить (возможно, потому, что я не знаю, что мне нужно!). Я до сих пор разработал викторину с несколькими различными режимами и таймером 60 секунд для каждого вопроса. Моя единственная проблема в том, что я не знаю, как ввести 2-3-секундную задержку между вопросами, которые задерживаются на экране. Прямо сейчас, пользователь задает вопросы правильно или неправильно, следующий вопрос сразу появляется на экране. Я бы хотел, чтобы экран был пустым (я просто очищу текстовые блоки с помощью [xyx.Text = "";], за исключением текстового блока, который отобразит «Right!» Или «Wrong!». в течение около 3 секунд.Как ввести задержку действий для моего приложения Windows 8

После 2-3 секунд, программа будет продолжаться в обычном режиме, случайным образом выбирая вопрос для отображения на экране. для наглядности здесь мой текущий код, я использую

public sealed partial class QuickPage : Page 
{ 
DispatcherTimer timeLeft = new Dispatcher(); 
int timesTicked = 60; 

public void CountDown() 
{ 
    timeLeft.Tick += timeLeft_Tick; 
    timeLeft.Interval = new TimeSpan(0,0,0,1); 
    timeLeft.Start(); 
} 

public void timeLeft_Tick(object sender, object e) 
{ 
    lblTime.Text = timesTicked.ToString(); 

    if (timesTicked > 0) 
    { 
     timesTicked--; 
    } 
    else 
    { 
     timeLeft.Stop(); 
     lblTime.Text = "Times Up"; 
    } 
} 

Вот нить, где я получил помощь с DispatcherTimer я использую для таймера обратного отсчета: Help with DispatcherTimer

+0

После обратного отсчета 60 секунд (с разворотом) запустите новый таймер с интервалом в 3 секунды. Через 3 секунды будет запущено событие timerX_Tick, и приложение сможет перейти к следующему вопросу. – Odrai

+0

Чтобы быть ясным, я должен создать еще один DispatcherTimer, который может быть вызван (shortPause) –

+0

Да, это правильно! :) (Обновление: добавлен ответ) – Odrai

ответ

0

Пример с задержкой в ​​5 секунд:

DispatcherTimer timer = new DispatcherTimer(); 

// Call this method after the 60 seconds countdown. 
public void Start_timer() 
{   
    timer.Tick += timer_Tick; 
    timer.Interval = new TimeSpan(0, 0, 5); 
    bool enabled = timer.IsEnabled; 

    // Check and show answer is correct or wrong 

    timer.Start();  
} 

void timer_Tick(object sender, object e) 
{ 
    this.Visibility = System.Windows.Visibility.Visible; 
    (sender as DispatcherTimer).Stop(); // Or you can just call timer.Stop() if the timer is a global variable. 

    // Clear screen, go to the next question 
}