我有一个表和许多行包含相同的图标<Image Source="{Binding Icon}" />
(有一组6个可能的图标)。我注意到,由于这些图标(它们似乎每次都会重新生成),表刷新需要大量的时间。在我的节目表中经常刷新 - 一次在3秒内。有没有一种方法来优化这个?也许将图标声明为资源,以便它只会加载一次。如何优化许多相同的图像?
2
A
回答
4
我建议确保您只为每个视图模型创建一个图标/图像(如果可能,我并不热衷于使用静态变量)。您还应该在资源上拨打Freeze()
以获得最佳性能。
例如
public class MultipleIconsViewModel
{
private BitmapImage _icon;
public ImageSource Icon
{
get
{
if (_icon == null)
{
_icon = new BitmapImage(new Uri(@"..\images\myImage.png", UriKind.RelativeOrAbsolute));
// can't call Freeze() until DownloadCompleted event fires.
_icon.DownloadCompleted += (sender, args) => ((BitmapImage) sender).Freeze();
}
return _icon;
}
}
}
也看到这个帖子:WPF image resources 其中讨论了同样的问题。
2
什么是Icon
属性在做什么?如果每次都创建一个新的ImageSource
,那就可以解释性能不佳的情况。如果你的图标是共享的,你可以静态地(作为一个单身)公开它,并使用它的一个实例。
相关问题
- 1. 多次显示相同图像时如何优化内存?
- 2. 如何优化从许多图像的HTML生成PDF
- 3. 如何优化多个图像拼接?
- 4. 如何同时加载许多图像?
- 5. 优化matplotlib pyplot:绘制许多小图
- 6. 优化在iPad上加载许多图像
- 7. 图像优化
- 8. 优化许多require_once调用
- 9. 如何优化已压缩的图像?
- 10. 如何避免优化已经使用PHP优化的图像?
- 11. 如何优化通过下载的50多个图像翻转
- 12. Slider:图像优化
- 13. PHP图像优化
- 14. 许多与SQL表非常相似的更新 - 优化?
- 15. 如何优化heroku相交
- 16. 图像的批量优化
- 17. 的SQL Server:优化查询与许多“而像”语句
- 18. 如何为许多表格优化50多个字段(列)?
- 19. 如何在HTML表格中优化多个重复图像
- 20. 用jQuery优化图像动画以优化iPad优化
- 21. 如何优化许多API版本的应用程序?
- 22. pygame有多个相同的图像
- 23. 我该如何优化这一点:许多Postgres触发器在一个事务中调用相同的函数
- 24. 如何显示许多图像?
- 25. 如何压缩图像相同的WhatsApp
- 26. 优化:用相同的代码,但differten值的多个clickevents
- 27. 优化性能:许多CURL请求
- 28. 优化<xsl:choose>许多<xsl:when>
- 29. 如何将图像分割为相同高度的多个图像?
- 30. 针对不同尺寸图片的图像优化
图标只是一个字符串,指向像'/Images/icon.png'这样的嵌入式图像 – Poma 2012-02-25 15:05:48