C# 事件&x2018;System.Windows.Controls.MediaElement.MediaOpen’;只能出现在+;=或-=

C# 事件&x2018;System.Windows.Controls.MediaElement.MediaOpen’;只能出现在+;=或-=,c#,winforms,events,compiler-errors,C#,Winforms,Events,Compiler Errors,请帮助我此行显示一些错误: mediaElement1.MediaOpened += new RoutedEventHandler(mediaElement1.MediaOpened); 错误: 错误1事件“System.Windows.Controls.MediaElement.MediaOpen”只能出现在+=或的左侧-= 请帮助我解决此问题。如消息所述,您正在将mediaElement1.MediaOpen放置在右侧: mediaElement1.MediaOpened += new R

请帮助我此行显示一些错误:

mediaElement1.MediaOpened += new RoutedEventHandler(mediaElement1.MediaOpened);
错误:

错误1事件“System.Windows.Controls.MediaElement.MediaOpen”只能出现在+=或的左侧-=


请帮助我解决此问题。

如消息所述,您正在将
mediaElement1.MediaOpen
放置在右侧:

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

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

对于事件,例如MediaOpened,+=运算符用于添加一个委托/方法,以便对所述事件执行某些操作

在本例中,您对MediaOpened事件感兴趣,因此您需要以下内容:

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

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

我不知道你到底想做什么。如果您想在mediaElement1.MediaOpen事件发生时执行一些逻辑,那么您需要创建一个方法,并将代码放在该方法中执行逻辑

private void mediaElement1_MediaOpened(object sender, RoutedEventArgs e)
{
    //Put your logic here
}
然后使用以下代码之一注册上述方法以处理mediaElement1.MediaOpen事件

//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"/>
//选项1:与您现有的代码一样,具有更正功能
mediaElement1.MediaOpened+=新路由EventHandler(mediaElement1\u MediaOpened);
//选项2:选项1的简要版本
mediaElement1.MediaOpened+=mediaElement1\u MediaOpened;
//选项3:用xaml而不是c注册#