ImageProperties.SaveImagePropertiesAsync() 不保存更改

ImageProperties.SaveImagePropertiesAsync() doesn't save changes

我正在尝试将一些属性保存到 Windows 10 UWP 应用程序中的图像文件中,在移动设备上 phone。

var fileProperties = await file.Properties.GetImagePropertiesAsync();

fileProperties.Rating = 25;
fileProperties.Title = "Title";
fileProperties.DateTaken = DateTime.Now;

await file.Properties.SavePropertiesAsync();

由于某种原因,属性没有保存。

文件是这样预先创建的:

var file = await _sourceFolder.CreateFileAsync(pathToFile, CreationCollisionOption.ReplaceExisting);
await bitmap.SaveToStorageFile(file);

其中位图的类型为 WriteableBitmap。 图像已保存到文件,但属性没有。

有谁知道我做错了什么?没有例外,没有关于为什么不成功的消息。

这里的问题是 StorageFile.Properties.SavePropertiesAsync,它获取 StorageItemContentProperties。并使用原始数据保存到文件中。

您应该可以使用 ImageProperties.SavePropertiesAsync 方法。它使用新的 ImageProperties 数据保存到文件。

例如:

var fileProperties = await file.Properties.GetImagePropertiesAsync();
fileProperties.Rating = 25;
fileProperties.Title = "title";
fileProperties.DateTaken = DateTime.Now;
await fileProperties.SavePropertiesAsync();

请注意,当评级设置为 0 时,不会保存其他值(如标题),也不会引发错误