5

メディア要素を含む単純なアプリがあり、いくつかの映画を次々と再生します。ある映画の再生が停止してから次の映画が始まるまでに 15 秒の遅延が必要です。私はWPFが初めてで、Timerとcontrol.Invokeを使用してこれを古い(WinForms)方法で行う方法を知っていますが、WPFにはもっと良い方法があるはずだと思いました。ある?

4

1 に答える 1

4

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