找不到该组件。 (HRESULT异常:0x88982F50)UWP

时间:2016-09-15 09:17:20

标签: c# uwp

我在尝试选择一个文件夹然后显示其中的所有图像时出现此错误。 我的代码:

 var folderPicker = new Windows.Storage.Pickers.FolderPicker();
            folderPicker.FileTypeFilter.Add(".jpg");
            var folder = await folderPicker.PickSingleFolderAsync();
            var filesList = await folder.GetFilesAsync();
            for (int i = 0; i < filesList.Count ; i++)
            {
                using (var stream = await filesList[i].OpenAsync(Windows.Storage.FileAccessMode.Read))
                {
                    var bitmapImage = new Windows.UI.Xaml.Media.Imaging.BitmapImage();
                    await bitmapImage.SetSourceAsync(stream);
                    Image m = new Image();
                    m.Source = bitmapImage;
                    sp1.Children.Add(m);
                }

            }

当文件夹有4或5张图像时,它确实有效,但不止于此我收到此错误。任何帮助?

1 个答案:

答案 0 :(得分:1)

问题可能不在于您正在显示的图像数量,而在于您尝试显示的图像不是图像。

在代码的顶部,您只应用过滤器&#34; .jpg&#34;图像,但此过滤器仅适用于文件夹选择器对话框中显示的内容,而不适用于GetFilesAsync方法返回的内容。这意味着您的filesList包含文件夹中的所有文件,而不仅仅是图像。要解决此问题,您可以先使用CreateFileQueryWithOptions方法创建过滤器:

 var filesList =
    await folder.CreateFileQueryWithOptions(
          new QueryOptions( CommonFileQuery.DefaultQuery,
                            new string[] {".jpg"} )
       ).GetFilesAsync();

您可以尝试使用此解决方案on my GitHub查看我的示例应用。