在不使用 SaveFileDialog (UWP) 的情况下保存 InkCanvas 笔划
Save InkCanvas strokes without using SaveFileDialog (UWP)
在我的 UWP C# 应用程序中,我试图以用户应该能够加载文件并继续编辑笔划的方式保存 InkCanvas 的笔划,是否可以在不询问用户的情况下执行此操作选择位置而不是将文件保存到默认位置?
提前致谢
您应该在应用程序的 AppData Local 文件夹中创建一个文件,并在需要时阅读它。我建议使用此代码创建文件:
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
}
在我的 UWP C# 应用程序中,我试图以用户应该能够加载文件并继续编辑笔划的方式保存 InkCanvas 的笔划,是否可以在不询问用户的情况下执行此操作选择位置而不是将文件保存到默认位置?
提前致谢
您应该在应用程序的 AppData Local 文件夹中创建一个文件,并在需要时阅读它。我建议使用此代码创建文件:
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
}