2013-10-07 2 views
0

Я пытаюсь создать систему наложения для элементов мультимедиа. Для этого я добавляю к моей форме холст. Через код я добавляю медиа-элемент к холсту.Добавление MediaElement к холсту

mediaPlayer = new MediaElement(); 
canvas.Children.Add(mediaPlayer); 
mediaPlayer.HorizontalAlignment = HorizontalAlignment.Left; 
mediaPlayer.VerticalAlignment = VerticalAlignment.Top; 
mediaPlayer.Height = 1080; 
mediaPlayer.Width = 1920; 
mediaPlayer.Source = new Uri(ConfigurationManager.AppSettings["VideoFile"], UriKind.Relative); 

mediaPlayer.LoadedBehavior = MediaState.Manual; 

mediaPlayer.Play(); 
mediaPlayer.MouseDown +=mediaPlayer_MouseDown; 

Когда я запустить приложение я получаю исключение на canvas.Children.Add (Медиаплеер): Ссылка на объект не указывает на экземпляр объекта. Это не делается, если я помещаю эту строку после экземпляра, прямо перед вызовом Play() или сразу после вызова play().

Я делал некоторые тесты, добавляя его в конструктор, он работает, хотя вы не можете начинать maunally, при настройке затем LoadedBehavior на ручную он также сбой (тоже ошибка). При добавлении медиа-элемента в форму он работает должным образом, хотя теперь я не могу накладывать элементы ... Что я делаю неправильно?

+1

Прежде всего было бы неплохо, если бы вы указали линию, в которой происходит исключение. Я хотел бы предложить вам использовать [Отладчик] (http://msdn.microsoft.com/en-us/library/vstudio/sc65sadd.aspx), чтобы узнать больше о вашей проблеме. – wonko79

+1

Я согласен с @ wonko79 ... * вы * единственный человек, который может отлаживать ваш код. Наведите указатель мыши на различные объекты в вашем коде, когда возникает «Исключение», чтобы выяснить, какой из них «нуль», и при необходимости вернитесь сюда с этой информацией для получения справки. – Sheridan

+0

Хорошо. После повторной проверки вещи я узнал, что когда я перетаскиваю элемент в элемент WPF, этот элемент stys null ... Странно, мне нужно посмотреть, почему это так. – Patrick

ответ

0

Проблема была не в коде выше. Проблема в том, что в WPF вам нужно позвонить InitializeComponent. Этот метод является стандартным, созданным при создании новой Формы. Случайно я удалил эту строку кода. Это заставляет все элементы формы не инициализироваться.

Смежные вопросы