ImageProperties.SaveImagePropertiesAsync() не сохраняет изменения

Я пытаюсь сохранить некоторые свойства в файл изображения в приложении Windows 10 UWP на мобильном телефоне.

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. Изображение сохраняется в файл, а свойства — нет.

Кто-нибудь знает, что я делаю не так? Нет исключения, нет сообщения о том, почему это не удается.


person robcsi    schedule 25.04.2017    source источник


Ответы (1)


Проблема здесь в 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();
person Jayden    schedule 26.04.2017
comment
О, тогда плохо... Спасибо за помощь. Пометка вашего ответа как единственного. Оно работает. - person robcsi; 26.04.2017