protected override object CreateDisplayControl() { mediaElement = new MediaElement(); mediaElement.CurrentStateChanged += mediaElement_CurrentStateChanged; mediaElement.BufferingProgressChanged += new RoutedEventHandler(mediaElement_BufferingProgressChanged); mediaElement.DownloadProgressChanged += new RoutedEventHandler(mediaElement_DownloadProgressChanged); mediaElement.MediaOpened += OnMediaOpened; mediaElement.MediaEnded += OnMediaEnded; mediaElement.MediaFailed += new EventHandler<ExceptionRoutedEventArgs>(mediaElement_MediaFailed); if (SourceBinding != null) mediaElement.SetBinding(MediaElement.SourceProperty, SourceBinding); mediaElement.SetBinding(MediaElement.IsMutedProperty, new System.Windows.Data.Binding("Controller.IsMuted") { Source = this }); mediaElement.SetBinding(MediaElement.VolumeProperty, new System.Windows.Data.Binding("Controller.Volume") { Source = this }); mediaElement.SetBinding(MediaElement.AutoPlayProperty, new System.Windows.Data.Binding("Controller.AutoPlay") { Source = this }); mediaElement.SetBinding(MediaElement.AudioStreamIndexProperty, new System.Windows.Data.Binding("AudioStreamIndex") { Source = this }); OnDisplayControlCreated(); return mediaElement; }