uwp StorageFile 没有得到简单的缩略图

Posted

技术标签:

【中文标题】uwp StorageFile 没有得到简单的缩略图【英文标题】:uwp StorageFile not getting a simple thumbnail 【发布时间】:2017-10-20 07:56:08 【问题描述】:

我在将图像缩略图数据绑定到 xaml 上的图像时遇到了一些问题,所以我做了一个简单的示例,向您展示我想要获得的只是一个文件的简单缩略图,并将其显示到 xaml 上的图像元素.

我在过去的 uwp 应用程序中处理了很多缩略图,我不明白我在这里做错了什么。

C# 代码

 public sealed partial class MainPage : Page

    public MainPage()
    
        this.InitializeComponent();
    
    protected async override void OnNavigatedTo(NavigationEventArgs e)
    
        img.Source = await GetIt();
    
    public async Task<BitmapImage> GetIt()
    
        var files=await KnownFolders.VideosLibrary.GetFilesAsync();
        var thumb=await files[0].GetThumbnailAsync(Windows.Storage.FileProperties.ThumbnailMode.VideosView);
        var bitm = new BitmapImage();
        bitm.SetSource(thumb);
        return bitm;
    

XAML 代码

<Grid Background="ThemeResource ApplicationPageBackgroundThemeBrush">
    <Image Name="img"/>
</Grid>

输出只是一个空白页

注意我尝试在 return bitm 上设置断点,但这个断点永远不会执行。我还注意到 GetAllFiles() 方法返回一个 System.__ComObject,实际上它应该返回一个 IReadOnlyList&lt;StorageFile&gt;

【问题讨论】:

调试您的应用程序并观察 System.UnauthorizedAccessException 的输出窗口 我允许 VideoLibrary 来自 capibilities 所以没有例外 【参考方案1】:

您确定文件集合不为空吗?

我已经测试了您的代码,它适用于我。我必须启用 VideoLibrary 功能(如您所做的那样)并将视频放入我的视频文件夹中。

【讨论】:

【参考方案2】:

这只是一个内存问题;奇怪的是 Visual Studio 没有识别它,我刚重新启动我的笔记本电脑,缩略图开始出现。

【讨论】:

以上是关于uwp StorageFile 没有得到简单的缩略图的主要内容,如果未能解决你的问题,请参考以下文章

如何使 StorageFile.DisplayName getter 在 UWP 中系统地排除 FileType

另一个进程错误正在使用 UWP StorageFile 文件

uwp 文件系统上 StorageFile 的唯一标识符

如何在 UWP 视频 StorageFile 中保存 System.Media.DateEncoded

移动 StorageFile 后立即在 UWP 中打开 SQLite 连接

你可以从它的路径访问一个选择的 StorageFile 吗? - UWP