WPF图片加载显示延迟

3

设置图像控件的来源到实际显示之间存在轻微延迟。

我需要一种方法来确定图像何时被准确地显示,但我似乎找不到任何可以挂钩的事件。有人知道如何检测这个吗?

1个回答

2
假设您的图像是某种位图,请创建一个BitmapImage对象并使用它的DownloadCompleted事件。例如:当图像准备好显示时,调用ReadyToDisplay。
从代码中实现如下:
BitmapImage bmp = new BitmapImage(imageUri);
bmp.DownloadCompleted += ReadyToDisplay;
image.Source = bmp;

从XAML:

<Image>
   <Image.Source>
      <BitmapImage UriSource="/images/image.png" DownloadCompleted="ReadyToDisplay"/>
   </Image.Source>
</Image>

我没有测试那些代码示例,因此可能存在拼写错误。


谢谢您的回答,但由于某些原因,本地加载的图像不会触发该事件。Google搜索也显示该事件不可靠。对我来说,该事件根本不会触发。 - Kwan Cheng
同样的问题在这里。DownloadCompleted事件没有被触发。 - Nasenbaer
事件似乎在我下载图像的第一次触发,但之后它不会再触发,即使我重新创建一个新的BitmapImage并第二次挂接事件。 - Mark Miller
我有同样的问题。如果通过BitmapImage实例将图像作为流提供,延迟也会发生。这似乎是由于渲染本身造成的延迟?! - xforfun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接