public static ImageSource Load(string packagePath, string localPath, double dpi = 96) { return(s_packageImageCache.GetOrCreate(UnifiedPath.Combine(packagePath, localPath), () => { try { using (var stream = new PackageStream(packagePath, localPath)) { BitmapSource image = BitmapImageEx.FromStream(stream); if (image.DpiX != dpi || image.DpiY != dpi) { image = image.ChangeDPI(dpi); } image.Freeze(); return (ImageSource)image; } } catch (Exception) { return null; } })); }