如何在 UWP C# 中显示文件打开选择器选择的图像?
How to display an image chosen by a file open picker in UWP C#?
我在通用 Windows 平台应用程序中实现了一个文件打开选择器,用于选择要在列表项中显示的图像。
但是,从文件打开选择器获取图像路径后,该路径既不能设置为图像源,也不能设置为 URI 或网络路径(尝试过“file:///”+ 路径)。
有没有办法显示文件打开选择器选择的路径中的图像?
如果没有,有什么办法可以在app中打开电脑本地图片吗?
I implemented a File Open Picker into a Universal Windows Platform Application for choosing an image to display in a list item.
UWP 不支持 file://
uri 方案,如果您使用文件打开选择器打开文件,您可以将文件作为流打开,并将其转换为 BitmapImage
,如下所示。
try
{
var picker = new Windows.Storage.Pickers.FileOpenPicker
{
ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail,
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 bitmapImage = new BitmapImage();
await bitmapImage.SetSourceAsync(fileStream);
MyImage.Source = bitmapImage;
}
}
}
catch (Exception ex)
{
throw ex;
}
我在通用 Windows 平台应用程序中实现了一个文件打开选择器,用于选择要在列表项中显示的图像。
但是,从文件打开选择器获取图像路径后,该路径既不能设置为图像源,也不能设置为 URI 或网络路径(尝试过“file:///”+ 路径)。
有没有办法显示文件打开选择器选择的路径中的图像?
如果没有,有什么办法可以在app中打开电脑本地图片吗?
I implemented a File Open Picker into a Universal Windows Platform Application for choosing an image to display in a list item.
UWP 不支持 file://
uri 方案,如果您使用文件打开选择器打开文件,您可以将文件作为流打开,并将其转换为 BitmapImage
,如下所示。
try
{
var picker = new Windows.Storage.Pickers.FileOpenPicker
{
ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail,
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 bitmapImage = new BitmapImage();
await bitmapImage.SetSourceAsync(fileStream);
MyImage.Source = bitmapImage;
}
}
}
catch (Exception ex)
{
throw ex;
}