我想创建一个应用,用户可以从其本地照片存储中选择多个图像,我想将这些照片加载到应用中。用户每次打开应用程序时都必须能够找到它们。我使用FileOpenPicker
让用户使用 PickMultipleFilesAsync()方法选择照片。现在我不知道如何在下次打开应用程序时保存照片以便向用户显示。
这是我的代码:
private async void AddButton_Click(object sender, RoutedEventArgs e)
{
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".jpeg");
openPicker.FileTypeFilter.Add(".bmp");
openPicker.FileTypeFilter.Add(".png");
IReadOnlyList<StorageFile> files = await openPicker.PickMultipleFilesAsync();
if (files.Count > 0)
{
foreach (StorageFile file in files)
{
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.DecodePixelHeight = 332;
bitmapImage.DecodePixelWidth = 200;
IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.Read);
await bitmapImage.SetSourceAsync(stream);
Wallpapers.Add(bitmapImage);
stream.Dispose();
}
}
}
谢谢大家。
答案 0 :(得分:1)
如果我正确理解您的问题,您想要记住照片保存位置(或照片的复制位置 - 并不重要)。您必须使用“设置”服务。
您可以使用Windows.Storage.ApplicationData.Current.LocalSettings.Values
设置字典保存文件路径等信息,以便以后调用。
例如:
Windows.Storage.ApplicationData.Current.LocalSettings.Values["PhotosPath"] = file.Path;
其中file是StorageFile对象,如代码所示,下次检索Windows.Storage.ApplicationData.Current.LocalSettings.Values["PhotosPath"]
以使用Path初始化文件对象时。
您可以通过声明using Windows.Storage;
命名空间(我认为您已经为StorageFile做过)来缩短上面的代码行,并且只是使用
ApplicationData.Current.LocalSettings.Values["PhotosPath"]
代表您的代码。
进一步的建议:如果您在项目中使用T10 Template,则不希望直接使用Windows.Storage.ApplicationData.Current.LocalSettings.Values进行设置。 T10有一个更全面的设置服务,建立在最小模板中的Windows.Storage.ApplicationData.Current(而不是替代空白模板),这就是你想要的改为使用。