Удалите медиаэлемент правильно из сетки - PullRequest
1 голос
/ 17 марта 2012

Я новичок в WPF.В моем приложении я показываю список заголовков видео в одном столбце сетки ( gridTitle ), а в другом столбце я добавляю еще одну сетку ( gridVideo ), которая содержит медиа-элемент (в пределах usercontrol) и воспроизводите видео, которое выбрано на gridTitle .Когда пользователь выбирает другой заголовок из gridTitle , я удаляю медиа-элемент (usercontrol) следующим образом:

if(gridVideo.Children.Count > 0)
{
    MediaControl temp = null;
    foreach (UIElement element in gridVideo.Children)
    {
        if (element.GetType() == typeof(MediaControl))
            temp = (MediaControl)element;    
    }

    if(temp!=null)
        gridVideo.Children.Remove(temp);

    // gridMedia.Children.RemoveAt(0);
}

вышеупомянутый метод удаляет пользовательский элемент управления, который содержит медиа-элемент.Здесь я хочу спросить, есть ли необходимость остановить / закрыть текущее видео, которое воспроизводится, или оно будет автоматически обработано WPF.Моя главная проблема заключается в том, что медиа-элемент не загружает данные в буфер в фоновом режиме?

Пожалуйста, предложите.

1 Ответ

1 голос
/ 18 марта 2012

Абсолютно необходимо заменить этот элемент управления на MediaElement? Вы можете просто сбросить его свойство Source MediaElement в соответствии с выбранным заголовком. Это можно сделать с помощью привязки данных: отображаемые заголовки могут быть экземплярами класса, который содержит заголовок (для отображения в списке) и Uri (для установки свойства MediaElement.Source). Затем MediaElement.Source привязывается к SelectedItem.Uri контейнера предметов.

...