使用BitmapSource指向本地文件

4

如何为Metro Style App实现本地缓存的最佳模式,以便在应用程序在线使用时可以在后台缓存图片,并在应用程序离线时提供图像?

当发现没有网络访问权限时,我们如何将BitmapSource设置为本地文件?使用new Uri(localpath,UriKind.Absolute)无法工作。

1个回答

7

图片已经下载了吗?如果是,它们在“本地”文件夹中吗?

如果是的话,你可以像这样从路径构建一个BitmapImage。

var m_Image = new BitmapImage(new Uri("ms-appdata:///local/" + ImageFileName));

编辑

如果您的文件存储在包中作为“从未访问过且无法下载任何内容”的待机状态,则Uri将类似于:

var m_Image = new BitmapImage(new Uri("ms-appx:///Assets/" + FallBackImageFileName));

谢谢,我会试试这个 - 但是如果我把它放在包 localfolder 中怎么办?是的,我会事先在后台下载它们。 - Jay Kannan
如果你指的是ApplicationData.Current.LocalFolder作为包本地文件夹,那么第一个Uri格式就是你想要的(new Uri("ms-appdata:///local/" + ImageFileName))。 - ZombieSheep
哦,是的,那就是我想要的文件夹。我会测试一下并更新。 - Jay Kannan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接