BitmapImage与ImageBrush的性能

Mar*_*rco 5 c# wpf performance xaml image

我试着四处寻找,但我找不到这个问题的答案:使用ImageBrush填充矩形而不是创建BitmapImage并设置其源属性是否有性能改进?

我必须渲染大量的图像(我们试图推动超过5000),现在我正在以这种方式创建它们:

<Image x:Name="img" RenderOptions.BitmapScalingMode="LowQuality"
    Source="{Binding Path, Converter={StaticResource StringToImageConverter}, ConverterParameter={StaticResource string}}" >
</ext:IdImage>
Run Code Online (Sandbox Code Playgroud)

并在转换器中:

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;
Run Code Online (Sandbox Code Playgroud)

注意:我必须使用转换器来设置DecodePixelWidth属性.

使用的图像刷,我可以这样冻结刷,根据我读,提高性能,所以我在想,如果我要改变我建立图像的方式.

PS图像不是静态的,而是被翻译出来的.

dan*_*004 0

我认为问题不在于代码,而在于 WPF 的架构。

如果你的问题是性能,根据我个人的经验,开发XAML是必要的,PC最好配备专用显卡。然而,很多时候,即使是在装有 Windows XP 的非常旧的电脑上,为了精简程序,我也确实安装了更新的直接 X 库

http://support.microsoft.com/kb/179113/en

XAML基于directX

尝试一下并告诉我