MediaElement.Загруженная ложь

#c# #wpf #media

#c# #wpf #Медиафайлы

Вопрос:

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

Проблема в том, что изображение загружается в элемент media недостаточно быстро. Это вызывает заикание и в целом выглядит плохо. Мне пришла в голову идея, что я мог бы просто создать замкнутый цикл, который просматривает MediaElement.Свойство загружается до тех пор, пока оно не станет истинным. Оказывается, что isLoaded всегда истинно, потому что isLoaded учитывает элемент мультимедиа, а не источник.

Я также думал о MediaElement.Процесс загрузки продолжается, но он тоже лежит.

Мысли?

Комментарии:

1. Вы должны подписаться на MediaElement.Loaded событие и обработать его соответствующим образом.

2. Элемент MediaElement. Загруженное событие не запускается после загрузки самого элемента мультимедиа.

Ответ №1:

Loaded Событие и IsLoaded свойство являются общими характеристиками всех элементов управления WPF, производных от FrameworkElement . IsLoaded Свойство становится true и Loaded событие вызывается, когда элемент добавляется в визуальное дерево, а не когда содержимое элемента было отображено. Итак, IsLoaded это неправильное свойство для того, что вы пытаетесь обнаружить.

Loaded Событие описывается следующим образом:

Обычно загружается последнее событие, возникающее в последовательности инициализации элемента.

С другой стороны, MediaElement имеет событие, которое может удовлетворить ваши потребности:

который описывается следующим образом:

Происходит, когда мультимедийный поток был проверен и открыт, и заголовки файлов были прочитаны.

Это звучит как правильное событие для вашего приложения.

Комментарии:

1. Красивые. Спасибо за ваш ответ. Я обязательно более тщательно прочитаю библиотеку MSDN, прежде чем задавать вопросы здесь в будущем.