我正在使用图像控件来显示文档:
<Image x:Name="cImage" SnapsToDevicePixels="True" ... />
因为在屏幕上显示图像大约需要半秒钟,所以我首先显示一个预览:
RenderOptions.SetBitmapScalingMode(cImage, BitmapScalingMode.NearestNeighbor);
cImage.Source=...;
然后我设置了一个计时器将模式更改为 HighQuality。
是否有 WPF 在完成渲染时触发的事件,我可以使用它来代替计时器?
最佳答案
你可以尝试使用 image sourceupdated 事件,但我并不总是有任何运气使用它。
根据您的来源,更好的解决方案是在加载时添加处理程序。
你可以尝试这样的事情:
BitmapImage src = new BitmapImage();
src.BeginInit();
src.UriSource = tURI;
src.EndInit();
imgImage.SetCurrentValue(Image.SourceProperty, src);
src.DownloadCompleted += ImageDownloadCompleted;
然后您可以编写 ImageDownloadCompleted 的代码来更改分辨率。
关于.net - WPF 图像/渲染事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2947868/