0

みんな WPFアプリケーション(C#)のメディア要素でビデオファイルを再生しています。

コンテキスト メニューを配置する必要があります (つまり、右クリックすると、ビデオの再生/一時停止/停止のオプションが表示される場合があります)。私は上記のようにしました

 ContextMenu contextMenu1 = new ContextMenu();
            MenuItem vidPlay = new MenuItem() { Header = "Play" }; vidPlay.Click += new System.Windows.RoutedEventHandler(PlayVid_Click);
            MenuItem vidPause = new MenuItem() { Header = "Pause" }; vidPlay.Click += new System.Windows.RoutedEventHandler(PauseVid_Click);
            MenuItem vidStop = new MenuItem() { Header = "Stop" }; vidPlay.Click += new System.Windows.RoutedEventHandler(StopVid_Click);

そしてそれを「グリッド」で利用できるようにしました

 //video play pause 
            contextMenu1.Items.Add(vidPlay); contextMenu1.Items.Add(vidPause); contextMenu1.Items.Add(vidStop);

これらがクリックされたときのサブルーチンは次のとおりです

 //play pause routine handlers
        //'me' is the media element,s name
        void PlayVid_Click(object sender, EventArgs e)
        {
            me.Play();
        }

        void PauseVid_Click(object sender, EventArgs e)
        {
            me.Pause();
        }

        void StopVid_Click(object sender, EventArgs e)
        {
            me.Stop();
        }

ただし、コンテキスト メニュー項目のいずれかをクリックしても、ビデオは一時停止したり停止したりしません。

どこで私は間違えましたか ?

4

1 に答える 1

1

わかりました、私は私がどこで間違ったのかを見たと思います (FEELING SILLY)

 ContextMenu contextMenu1 = new ContextMenu();
            MenuItem vidPlay = new MenuItem() { Header = "Play" }; vidPlay.Click += new System.Windows.RoutedEventHandler(PlayVid_Click);
            MenuItem vidPause = new MenuItem() { Header = "Pause" }; vidPlay.Click += new System.Windows.RoutedEventHandler(PauseVid_Click);
            MenuItem vidStop = new MenuItem() { Header = "Stop" }; vidPlay.Click += new System.Windows.RoutedEventHandler(StopVid_Click);

2番目と3番目の項目のvidPlayを貼り付けるときに修正するのを忘れていました:/ に修正しました:

   ContextMenu contextMenu1 = new ContextMenu();
                MenuItem vidPlay = new MenuItem() { Header = "Play" }; vidPlay.Click += new System.Windows.RoutedEventHandler(PlayVid_Click);
                MenuItem vidPause = new MenuItem() { Header = "Pause" }; vidPause.Click += new System.Windows.RoutedEventHandler(PauseVid_Click);
                MenuItem vidStop = new MenuItem() { Header = "Stop" }; vidStop.Click += new System.Windows.RoutedEventHandler(StopVid_Click);

そして少し余分なヒント(それは私にとって数時間の苦痛でした)、あなたは線を使わなければならないかもしれません

  //setting behaviour of MediaElement-This allows to INVOKE the play() / pause() / stop() methods appropriately *08 nv 2013*
                me.LoadedBehavior = MediaState.Manual;
                me.UnloadedBehavior = MediaState.Stop;

play()pause()およびstop()メソッドの呼び出しに問題が発生しないように

于 2013-11-08T05:44:56.310 に答える