2

我的应用程序对货币做了很多工作,因此经常使用我拥有的 80-90 个 .ICO 文件作为国家标志资源,来代表每种货币。大多数屏幕都使用这些,每次使用都重新加载它们似乎是一种浪费,特别是考虑到当我使用具有 IMG 标签的数据模板时,它会冻结 GUI 或在 ListViews 等中加载它们时使其性能非常低下。

在 WPF 中是否推荐了某种方式或设计,我可以将这些图像预加载到 WPF 应用程序空间中,以便每当它们被引用时,它们已经被全局缓存和加载,所以我只需在应用程序启动时将它们加载到内存中,然后从那时起,每次使用都快如闪电?

谢谢

4

1 回答 1

0

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

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

请参阅如何:使用msdn 上的应用程序资源。

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

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

然后绑定到这个属性:

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

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

于 2012-08-30T09:57:25.200 回答