Событие "System.Windows.Controls.MediaElement.MediaOpened" может появляться только с левой стороны + = или - =

пожалуйста, помогите мне, некоторая ошибка отображается для этой строки:

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

Ошибка:

Ошибка 1 Событие "System.Windows.Controls.MediaElement.MediaOpened" может появляться только с левой стороны + = или - =

Пожалуйста, помогите мне, как решить проблему.

3 ответа

Как говорится в сообщении, вы помещаете mediaElement1.MediaOpened в правую сторону:

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.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#

licensed under cc by-sa 3.0 with attribution.