我试过搜索但无法找到这个问题的答案:使用ImageBrush填充矩形是否比创建BitmapImage并设置其源属性有性能改进?
我需要呈现大量图像(我们正在尝试超过5000),目前我是这样创建它们的:
<Image x:Name="img" RenderOptions.BitmapScalingMode="LowQuality"
Source="{Binding Path, Converter={StaticResource StringToImageConverter}, ConverterParameter={StaticResource string}}" >
</ext:IdImage>
在转换器中:
System.Windows.Media.Imaging.BitmapImage image = new System.Windows.Media.Imaging.BitmapImage();
image.BeginInit();
image.UriSource = new Uri(value as String);
image.DecodePixelWidth = int.Parse((String)parameter);
image.CacheOption = System.Windows.Media.Imaging.BitmapCacheOption.OnLoad;
image.EndInit();
return image;
注意:我必须使用转换器来设置DecodePixelWidth属性。
使用ImageBrush,我可以冻结画刷,从而根据我所读取的内容提高性能,所以我在想是否应该改变构建图像的方式。
附注:这些图像不是静态的,而是被平移。