事件'System.Windows.Controls.MediaElement.MediaOpened'只能出现在+ =或 - =的左侧

时间:2013-12-14 05:37:36

标签: c# winforms events compiler-errors

请帮我看一下此行的错误:

mediaElement1.MediaOpened += new RoutedEventHandler(mediaElement1.MediaOpened);

错误:

  

错误1事件'System.Windows.Controls.MediaElement.MediaOpened'只能出现在+ =或 - =

的左侧

请帮我解决问题。

3 个答案:

答案 0 :(得分:1)

如消息所示,您将mediaElement1.MediaOpened放在右侧:

mediaElement1.MediaOpened += new RoutedEventHandler(mediaElement1.MediaOpened);
                                                    ^
                                                    //Can't place it here

您需要以不同的方式创建RoutedEventHandler

答案 1 :(得分:0)

对于事件,例如MediaOpened,+ =运算符用于添加委托/方法以对所述事件采取某些操作。

在这种情况下,您对MediaOpened事件感兴趣,因此您需要以下内容:

mediaElement1.MediaOpened += new RoutedEventHandler(this.OnMediaOpened);

private void OnMediaOpened(object sender, RoutedEventArgs e)
{
    // TODO - Handle the MediaOpened event here
}

答案 2 :(得分:0)

我不确定你究竟想做什么。如果你想在mediaElement1.MediaOpened事件发生时做一些逻辑,那么你需要创建一个方法并将你的代码放在那个方法中做逻辑。

private void mediaElement1_MediaOpened(object sender, RoutedEventArgs e)
{
    //Put your logic here
}

然后注册上面的方法以使用以下代码之一处理mediaElement1.MediaOpened事件

//option 1: just like your existing code with correction
mediaElement1.MediaOpened += new RoutedEventHandler(mediaElement1_MediaOpened);

//option 2: brief version of option 1
mediaElement1.MediaOpened += mediaElement1_MediaOpened;

//option 3: register in xaml instead of c#
<MediaElement x:Name="mediaElement1" MediaOpened="mediaElement1_MediaOpened"/>