5

我有一个简单的应用程序,其中包含媒体元素,它会一个接一个地播放一些电影。我想在一部电影停止播放和下一部电影开始之间有 15 秒的延迟。我是 WPF 的新手,虽然我知道如何使用 Timer 和 control.Invoke 以旧的(WinForms)方式执行此操作,但我认为 WPF 中必须有更好的方法。有没有?

4

1 回答 1

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();
}
于 2009-02-10T11:12:41.703 回答