WPF图像/渲染事件

时间:2010-06-01 07:11:37

标签: .net wpf image

我正在使用Image控件来显示文档:

<Image x:Name="cImage" SnapsToDevicePixels="True" ... />

因为在屏幕上显示图像大约需要半秒钟,所以我首先使用以下内容显示预览:

RenderOptions.SetBitmapScalingMode(cImage, BitmapScalingMode.NearestNeighbor);
cImage.Source=...;

然后我设置一个计时器将模式更改为HighQuality。

是否有WPF在完成渲染时触发的事件,而不是计时器?

2 个答案:

答案 0 :(得分:3)

您可以尝试使用图像sourceupdated事件,但我并不总是有运气使用它。

一个更好的解决方案,取决于你的来源是为它加载时添加一个处理程序。

你可以尝试这样的事情:

BitmapImage src = new BitmapImage();
src.BeginInit();
src.UriSource = tURI;
src.EndInit();
imgImage.SetCurrentValue(Image.SourceProperty, src);
src.DownloadCompleted += ImageDownloadCompleted;

然后你可以编写ImageDownloadCompleted的代码来改变分辨率。

答案 1 :(得分:1)

这不是图像的Loaded事件吗?

根据http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.loaded.aspx,在呈现内容并准备好进行交互时启动Loaded。

请注意,如果在加载后更改图像控件的内容,则不会再次触发Loaded事件。