Как лучше всего работать с событиями, управляемыми временем, в WPF? - PullRequest
5 голосов
/ 10 февраля 2009

У меня есть простое приложение, в котором есть медиа-элемент, и оно воспроизводит несколько фильмов один за другим. Я хочу, чтобы задержка в 15 секунд между воспроизведением одного фильма и началом следующего. Я новичок в WPF, и хотя я знаю, как сделать это по-старому (WinForms) с помощью Timer и control.Invoke, я думал, что в WPF должен быть лучший путь. Есть ли?

1 Ответ

4 голосов
/ 10 февраля 2009

DispatcherTimer - это то, что вы хотите. В этом случае вы создадите DispatcherTimer с интервалом в 15 секунд и запустите первое видео. Затем, когда это видео будет завершено, включите таймер, а в событии отметьте следующее видео и установите таймер отключенным, чтобы он не срабатывал каждые 15 секунд. DispatcherTimer находится в пространстве имен System.Windows.Threading.

DispatcherTimer yourTimer = new DispatcherTimer();

yourTimer.Interval = new TimeSpan(0, 0, 15); //fifteen second interval
yourTimer.Tick += new EventHandler(yourTimer_Tick);
firstVideo.Show();

Предполагается, что по окончании видео событие сработало, а затем установите

yourTimer.Enabled = True;

, а затем в обработчике событий yourTimer.Tick

private void yourTimer_Tick(object sender, EventArgs e)
{
    yourTimer.Enabled = False;//Don't repeat every 15 seconds
    nextVideo.Show();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...