2009-02-10 12 views
5

Mam prostą aplikację, zawierającą element multimedialny i odtwarzającą niektóre filmy jeden po drugim. Chcę mieć 15-sekundową zwłokę między zatrzymaniem odtwarzania jednego filmu, a następnym uruchomieniem. Jestem nowy w WPF i choć wiem, jak to zrobić stary (WinForm) sposób z zegarem i kontrolą. Wywołanie, myślałem, że musi być lepszy sposób w WPF. Jest tu?Jaki jest najlepszy sposób pracy ze zdarzeniami sterowanymi czasowo w WPF

Odpowiedz

4

DispatcherTimer jest tym, czego potrzebujesz. W tym przypadku należy utworzyć DispatcherTimer z przerwą 15 sekund, rozpocząć pierwsze wideo. Następnie, po zakończeniu tego wideo włącz zegar, a na ekranie zaznaczenia pokazuj kolejne wideo i ustaw wyłącznik czasowy, aby nie uruchamiał się co 15 sekund. DispatcherTimer żyje w przestrzeni nazw 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(); 

Zakładając, że zdarzenie opalane gdy film jest gotowy następnie ustawić

yourTimer.Enabled = True; 

a następnie w obsługi zdarzeń yourTimer.Tick

private void yourTimer_Tick(object sender, EventArgs e) 
{ 
    yourTimer.Enabled = False;//Don't repeat every 15 seconds 
    nextVideo.Show(); 
} 
+0

to wykonać na wątku UI lub zrobić Muszę kontrolować. Wywołać jak z normalnym zegarem? –

+0

dzięki, dokładnie tego potrzebowałem. –