MediaElement.IsLoaded Lies - PullRequest
       4

MediaElement.IsLoaded Lies

2 голосов
/ 26 мая 2011

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

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

Я также думал о MediaElement.DownloadProgress, но он тоже лежит.

Мысли?

1 Ответ

7 голосов
/ 26 мая 2011

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

Событие Loaded описывается так:

Loaded обычно является последним событием, вызванным впоследовательность инициализации элемента.

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

, который описан так:

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

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

...