我有一个简单的应用程序,里面有媒体元素,它会一个接一个地播放一些电影.我想在一部电影停止播放和下一部电影开始之间有15秒的延迟.我是WPF的新手,虽然我知道如何使用Timer和control.Invoke来实现旧的(WinForms)方式,我认为在WPF中必须有更好的方法.在那儿?
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();
Run Code Online (Sandbox Code Playgroud)
假设您在视频结束时触发了一个事件,然后设置
yourTimer.Enabled = True;
Run Code Online (Sandbox Code Playgroud)
然后在 yourTimer.Tick 事件处理程序中
private void yourTimer_Tick(object sender, EventArgs e)
{
yourTimer.Enabled = False;//Don't repeat every 15 seconds
nextVideo.Show();
}
Run Code Online (Sandbox Code Playgroud)