c# - WPF 图标预加载

标签 c# wpf performance image preloading

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

在 WPF 中是否有推荐的某种方法或设计,我可以将这些图像预加载到 WPF 应用程序空间中,以便无论何时引用它们,它们都已经缓存并全局加载,因此我只需在应用程序中将它们加载到内存中一次start,那么以后每次使用都快如闪电?

谢谢

最佳答案

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

它们只加载一次,并且可以在您的应用中随处访问。”

参见 How to: Use Application Resources在 msdn 上。

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

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

然后绑定(bind)到这个属性:

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

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

关于c# - WPF 图标预加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12194249/

相关文章:

c# - Resharper 对 XAML 不满意

mysql - 优化MySQL中的where子句查询

c# - 当 ChildWindow 打开 MessageBox 并关闭时,MainWindow 最小化

c# - 如何从 View 模型中弹出子窗口

sql - 调整 SQL 语句性能

java nio 从文件中读取行

c# - 搜索以 c# regex 开头和结尾的所有字符串

c# - 数据库部署实践

c# - 如何在值更改时验证 numericupdown(而不是失去焦点)

c# - VB.NET 和 C# 之间的二进制移位差异