【问题标题】:How to display an image chosen by a file open picker in UWP C#?如何在 UWP C# 中显示由文件打开选择器选择的图像?
【发布时间】:2021-04-05 06:59:01
【问题描述】:

我在通用 Windows 平台应用程序中实现了一个文件打开选择器,用于选择要在列表项中显示的图像。

但是,从文件打开选择器中获取图片路径后,该路径不能设置为图片源,既不能作为URI也不能作为网络路径(试过“file:///”+路径)。

有没有办法从文件打开选择器选择的路径中显示图像?

如果没有,有什么方法可以在应用中从电脑打开本地图片?

【问题讨论】:

    标签: c# image uwp path fileopenpicker


    【解决方案1】:

    我在通用 Windows 平台应用程序中实现了一个文件打开选择器,用于选择要在列表项中显示的图像。

    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;
    }
    

    【讨论】:

    • 性能考虑:MyImage.Source 应该在调用 SetSourceAsync之前设置,以允许 XAML 框架解码图像以正确呈现大小。
    猜你喜欢
    • 2020-09-18
    • 2023-01-04
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 2017-03-20
    • 2017-02-16
    • 2012-02-02
    • 2014-03-11
    相关资源
    最近更新 更多