#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, прежде чем задавать вопросы здесь в будущем.