Win8 / Metro - изображение редактируется другим человеком - PullRequest
1 голос
/ 09 февраля 2012

Я делаю снимок и сохраняю его на диск. Изображение на самом деле попадает на диск, но оно не закрывается, потому что, когда я пытаюсь открыть его, щелкнув по нему в проводнике Windows, я получаю сообщение:

"Windows Photo Viewer не может открыть это изображение, потому что изображение редактируется другим человеком "

Вот код, как мне закрыть поток / файл?

var ui = new CameraCaptureUI();
ui.PhotoSettings.CroppedAspectRatio = new Size(4, 3);
StorageFile file = await ui.CaptureFileAsync(CameraCaptureUIMode.Photo);

var stream = await file.OpenAsync(FileAccessMode.Read);
var bitmap = new BitmapImage();
bitmap.SetSource(stream);
StorageFolder storageFolder = KnownFolders.PicturesLibrary;
var result = await file.CopyAsync(storageFolder, "tps2.jpg"); 

Ответы [ 2 ]

1 голос
/ 21 февраля 2012

Check .Net Metro Overview

В соответствии с этим вы должны заключить в поток предложение с помощью оператора или вызвать Dispose вместо вызова Close.Это не сработало для меня, но, возможно, это сработает для вас.

0 голосов
/ 27 февраля 2012

Я посмотрел и не нашел ответа.Предположительно, потому что релиз является «предварительным просмотром для разработчиков», он значительно ниже качества выпуска и содержит много функциональных возможностей, которые отсутствуют или нарушены.Поскольку управление системными ресурсами, такими как файлы, имеет решающее значение, мы, вероятно, увидим больше и улучшенную функциональность со следующим выпуском («Предварительный просмотр потребителем»), который будет через 2 дня, как я сейчас напишу. Хорошие новости, благодаря инструментам предварительного просмотра для потребителей (бета-версия Win8) IRandomAccessStream реализует IDisposable.Это тип результата операции OpenAsync в StorageFile.

...