我有一个简单的应用程序,其中包含媒体元素,并播放一些电影。我希望在每个电影播放结束和下一个电影开始之间有15秒的延迟。
我对WPF不熟悉,虽然我知道如何使用计时器和control.Invoke来完成旧版(WinForms)的操作,但我认为在WPF中必须有更好的方法。是否存在这样的方法?
DispatcherTimer是你想要的。在这种情况下,你需要创建一个间隔为15秒的DispatcherTimer,启动第一个视频。然后当该视频完成时,启用计时器,在tick事件中显示下一个视频,并将计时器设置为禁用,以便它不会每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();
}