我有一个简单的应用程序,里面有媒体元素,它会一个接一个地播放一些电影。我想在一部电影停止播放和下一部电影开始之间有15秒的延迟。 我是WPF的新手,虽然我知道如何使用Timer和control.Invoke来实现旧的(WinForms)方式,我认为在WPF中必须有更好的方法。有吗?
答案 0 :(得分:4)
DispatcherTimer就是你想要的。在这种情况下,您将创建一个间隔为15秒的DispatcherTimer,启动第一个视频。然后,当该视频完成启用计时器并在刻度事件中显示下一个视频,并将计时器设置为禁用,因此它不会每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();
}