Сохранение штрихов InkCanvas без использования SaveFileDialog (UWP)

В моем приложении UWP C# я пытаюсь сохранить штрихи InkCanvas таким образом, чтобы пользователь мог загрузить файл и продолжить редактирование штрихов, возможно ли это сделать, не прося пользователя выбрать местоположение, но скорее, сохранив файл в папку по умолчанию?

заранее спасибо


person Samuele Dassatti    schedule 07.08.2017    source источник
comment
См. раздел разрешения на доступ к файлам.   -  person Clemens    schedule 07.08.2017
comment
Доступны ли файлы, сохраненные в локальной папке приложения, при повторном открытии приложения или они отменяются при закрытии приложения?   -  person Samuele Dassatti    schedule 08.08.2017


Ответы (1)


Вы должны создать файл в локальной папке AppData вашего приложения и прочитать его при необходимости. Я предлагаю использовать этот код для создания файла:

Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
Windows.Storage.StorageFile file = await storageFolder.CreateFileAsync("sample.gif", Windows.Storage.CreationCollisionOption.ReplaceExisting);

А этот, чтобы написать на нем штрихи:

Windows.Storage.CachedFileManager.DeferUpdates(file);
IRandomAccessStream stream = await file.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
using (IOutputStream outputStream = stream.GetOutputStreamAt(0)) {
   await inkCanvas.InkPresenter.StrokeContainer.SaveAsync(outputStream);
   await outputStream.FlushAsync();
}
stream.Dispose();

Windows.Storage.Provider.FileUpdateStatus status = await Windows.Storage.CachedFileManager.CompleteUpdatesAsync(file);

if (status == Windows.Storage.Provider.FileUpdateStatus.Complete) {
     // File saved
} else {
     // File NOT saved
}
person jay peg    schedule 08.08.2017