C# 如何在应用程序'中保存图像或文件流;什么样的设置?超宽带#

C# 如何在应用程序'中保存图像或文件流;什么样的设置?超宽带#,c#,image,uwp,settings,filestream,C#,Image,Uwp,Settings,Filestream,我有一个带有一些ListViewItems的列表视图,每个视图都包含一个文本框和一个图像 用户可以添加或删除这些ListViewItems,因此我希望在每次关闭应用程序时将它们保存在设置中,并在每次打开应用程序时加载它们 我设法将文本框的文本保存在设置中并加载它们,但是如何保存和加载图像/图像源/文件流? 当用户在FileOpenPicker中选择一个图像,然后使用指向该图像的文件流创建位图图像,作为ListViewItem的图像源时,将创建图像 private async void openF

我有一个带有一些ListViewItems的列表视图,每个视图都包含一个文本框和一个图像

用户可以添加或删除这些ListViewItems,因此我希望在每次关闭应用程序时将它们保存在设置中,并在每次打开应用程序时加载它们

我设法将文本框的文本保存在设置中并加载它们,但是如何保存和加载图像/图像源/文件流?

当用户在FileOpenPicker中选择一个图像,然后使用指向该图像的文件流创建位图图像,作为ListViewItem的图像源时,将创建图像

private async void openFileInputEvent(object sender, RoutedEventArgs e)
    {
        var picker = new Windows.Storage.Pickers.FileOpenPicker();
        picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
        picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.PicturesLibrary;
        picker.FileTypeFilter.Add(".jpg");
        picker.FileTypeFilter.Add(".jpeg");
        picker.FileTypeFilter.Add(".png");

        Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
        if (file != null)
        {
            using (IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
            {
                BitmapImage tmpimg = new BitmapImage();
                await tmpimg.SetSourceAsync(fileStream);
                imglist.Add(tmpimg);
            }
        }
        else
        {
            var dialog = new MessageDialog("File not chosen", "No chosen Image");
            await dialog.ShowAsync();
            imglist.Add(new BitmapImage());
        }
    }
所有ListViewItems图像的位图图像存储在位图图像列表中(
list
),通过选择列表上的最后一项(
imglist[imglist.Count-1]
)进行选择

我想将这些图像/它们的源/文件流保存并加载到它们的源,有什么办法吗?

我可以保存图像的路径,但是我以后不能创建一个以该路径为源的图像,它必须是一个文件流

如何在应用程序设置中保存图像或文件流?超宽带#


LocalSettings
不支持存储大数据,恐怕您无法将位图图像直接存储到
LocalSettings
中,对于您的场景,我们建议您将图像存储在应用程序的中,并使用访问它们。

如果图像源来自本地计算机,如何执行此操作(它们是通过FileOpenPicker选择的)?请检查uwp,您可以访问具有uri的文件。但是如何从计算机获取所选文件的uri?您只需要获取图像文件名和存储的文件夹,例如,如果您将图像文件存储到
localstate
,您可以像
ms>一样获取uri-appdata:///local=
localstateforder
img.png是您的图像名称,但是当文件存储在C驱动器(C:/image.png)上时,情况会怎样呢?您能从中创建一个uri吗?或者您能将所选文件复制到应用程序的文件夹中,使其始终可访问吗?