2012-03-07 3 views
3

私は単純なC#WPFビデオプレーヤーアプリを作っています。別のウィンドウでMediaEndedイベントを聞きます。

2つのWindowsがあります。MainWindow(親ウィンドウ)には、ビデオを表示するMediaElementが含まれています。 PlaylistWindow(子ウィンドウ)は、appRootパスにすべての.aviファイルを表示するListBoxを含むウィンドウです。

現在、ListBoxアイテムをダブルクリックすると、MainWindowでそのビデオが再生されます。自動再生機能を使用して、現在のビデオが終了したときにリストの次の項目が自動的に再生されるようにしたいと思います。

私は、PlaylistWindowのListBoxでいくつかのアクションを実行できるように、MainWindowのMediaElementによってトリガされたMediaEndedイベントを再生するようにPlaylistWindowを欲しいです。

PlaylistWindowからMediaEndedイベントを購読するにはどうすればよいですか?

編集の追加: 私は以下のように別のアプローチを使用しました。 これを行うのが最良の方法だとは思わないが、それは私にとってはうまくいく。

public partial class MainWindow : Window 
{ 
    PlaylistWindow PLWindow = new PlaylistWindow(); 

    public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    private void MainWindow_Loaded(object sender, RoutedEventArgs e) 
    { 
     PLWindow.Owner = this; 
     PLWindow.Show(); 
    } 

    private void videoWindow_Ended(object sender, EventArgs e) 
    { 
     PLWindow.playNext(); 
    } 
} 

public partial class PlaylistWindow : Window 
{ 
    public void playNext() 
    { 
     if (playListBox.SelectedIndex < playListBox.Items.Count - 1) 
     { 
      playListBox.SelectedIndex = playListBox.SelectedIndex + 1; 
     } 
     else { playListBox.SelectedIndex = 0; } 

     (Owner as MainWindow).playVideo(playListBox.SelectedValue.ToString()); 
    } 
} 

私はまだコードサンプルを掲載することができた場合PlaylistWindowでMediaEndedイベントをリッスンする方法についての学習に開いています。

答えて

1

このイベントのイベントハンドラで、次の.aviファイルのファイル名を返します。

(このカスタムイベントはMedia endedイベントによって発生します)メインウィンドウからカスタム.netイベントを発生させて再生リストウィンドウに登録します。
関連する問題