2009-02-10 6 views
5

Tengo una aplicación simple, que tiene un elemento multimedia y reproduce algunas películas, una tras otra. Quiero tener un retraso de 15 segundos entre que una película deja de reproducirse y la siguiente comienza. Soy nuevo en WPF y aunque sé cómo hacer esto, el viejo (WinForms) forma con un temporizador y control. Invoque, pensé que debe haber una mejor manera en WPF. ¿Esta ahí?Cuál es la mejor manera de trabajar con eventos controlados por tiempo en WPF

Respuesta

4

El DispatcherTimer es lo que desea. En este caso, crearía un DispatcherTimer con un intervalo de 15 segundos, iniciará el primer video. Luego, cuando ese video se haya completado, active el temporizador y en el evento tick muestre el siguiente video, y configure el temporizador en desactivado para que no se dispare cada 15 segundos. DispatcherTimer vive en el espacio de nombres 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(); 

Suponiendo que ha disparado un evento cuando el vídeo se termina a continuación, establecer

yourTimer.Enabled = True; 

y luego en el controlador de eventos yourTimer.Tick

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

Qué se ejecutan en el subproceso de interfaz de usuario o hacer Tengo que controlar. ¿Invocar como con el temporizador normal? –

+0

gracias, eso es exactamente lo que necesitaba. –

Cuestiones relacionadas