因此,我创建了幻灯片。幻灯片使用两个重叠的媒体元素来显示图片。过渡仅意味着减少前景元素的不透明度并增加背景元素的不透明度。

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

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

有什么想法吗?

最佳答案

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

Loaded事件的描述如下:


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


另一方面,MediaElement具有可能满足您需求的事件:


MediaElement.MediaOpened Event


描述如下:


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


这听起来像是您的应用程序正确的事件。

关于c# - MediaElement.IsLoaded的谎言,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6143866/

10-12 01:35