WPF图标预加载

时间:2012-08-30 09:54:13

标签: c# wpf performance image preloading

我的应用程序使用货币进行了大量工作,因此经常使用80-90 .ICO文件作为国家标志的资源来代表每种货币。大多数屏幕使用这些并且为每次使用而继续重新加载它们似乎是浪费,特别是当我使用具有IMG标记的数据窗口时,它会冻结GUI或在ListViews等中加载它时使它非常不合格。

在WPF中是否存在某种方式或设计,我可以将这些图像预加载到WPF应用程序空间中,这样无论何时引用它们,它们都已被缓存并全局加载,所以我只需要在应用程序中将它们加载到内存中一次开始,那么从那时起的每一次使用都是闪电般的?

由于

1 个答案:

答案 0 :(得分:0)

我建议将它们放入xaml中的Application.Resources。

这些只会加载一次,并且可以在您的应用中随处访问。'

请参阅msdn。上的How to: Use Application Resources

修改 在您的类中也绑定了您的项目(包含IconSelect的类),您需要添加一个额外的属性。

public BitmapImage BitmapIconSelect
{
    get
    {
        return Application.Resources[IconSelect];
    }
}

然后绑定到此属性:

<Image Source="{Binding BitmapIconSelect, IsAsync=True, Mode=OneWay}" Width="20" Height="20" />

我徒手写了这段代码,所以我不确定它是否编译,但我希望你明白我的观点。