我正在使用Image控件来显示文档:
<Image x:Name="cImage" SnapsToDevicePixels="True" ... />
因为在屏幕上显示图像大约需要半秒钟,所以我首先使用以下内容显示预览:
RenderOptions.SetBitmapScalingMode(cImage, BitmapScalingMode.NearestNeighbor);
cImage.Source=...;
然后我设置一个计时器将模式更改为HighQuality。
是否有WPF在完成渲染时触发的事件,而不是计时器?
答案 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事件。