[C#][WPF] イベントの送り主をどうやって捕まえるか?

たとえば、メディアを張り付けて無限リピート再生したいとする。
で、こんなXAMLを書いてみた。

                    <MediaElement HorizontalAlignment="Stretch" x:Name="me0" LoadedBehavior="Play" VerticalAlignment="Stretch" Margin="5,0,6,0" MediaEnded="media_end" Source="media/ぬこぬこ動画.mp4" Grid.ColumnSpan="2"></MediaElement>

この、MediaEnded=”media_end” ってのが、終了時に呼ばれるとこだね。
あとはまぁ、書かなくてもわかるだろう。

ところで、この動画が複数あって「どれから送られてきた」のか、見分けたい時ってどうすると思います?
恥ずかしながらよくわからなかったんですが、以下で解決しました。

        /// <summary>
        /// 汎用プレイヤー巻き戻し
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="r_event"></param>
        private void media_end(object sender, RoutedEventArgs r_event)
        {
            MediaElement ff = (MediaElement)sender;
            ff.Position = new TimeSpan(0, 0, 0, 0, 1);
        }

えーとですね。
senderはMediaElementと決まってるわけですけど、C#側はさすがにそこまでは把握してないんですよね。
だけど送られてきてる senderは間違いなく MediaElementなんで、

じゃあ、キャストしてやればいいんじゃ?

んなわけで、上記のようになった次第っす。

実際これ「このイベントの送り主に何かしたい」って状況で時々遭遇するみたいですね……。
(まさに今、このイベントにやられたばかり)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)