MediaElement.IsLoaded谎言

时间:2011-05-26 19:16:57

标签: c# wpf media

所以我创建了幻灯片。幻灯片显示使用两个重叠的媒体元素来显示图片。转换只是意味着减少前景元素的不透明度并增加背景元素的不透明度。

问题是图片没有足够快地加载到媒体元素中。这导致口吃并且通常看起来很糟糕。我认为我可以创建一个紧密循环来查看MediaElement.IsLoaded属性,直到它变为true。事实证明,isLoaded始终为true,因为IsLoaded会考虑媒体元素,而不是源。

我也考虑过MediaElement.DownloadProgress,但它也存在。

思想?

1 个答案:

答案 0 :(得分:7)

Loaded事件和IsLoaded属性是从FrameworkElement派生的所有WPF控件的一般功能。当元素添加到可视树时,IsLoaded属性变为true并且Loaded事件被引发,而不是在元素的内容被显示时。因此,IsLoaded是您要检测的内容的错误属性。

Loaded事件的描述如下:

  

Loaded通常是元素初始化序列中引发的最后一个事件。

另一方面,MediaElement有一个可能符合您需求的事件:

如下所述:

  

在验证并打开媒体流并且已读取文件头时发生。

这听起来像是您申请的正确事件。