0

在我的 WinRT / Windows Store 应用程序中,我希望允许用户通过FileSavePicker.

savePicker.FileTypeChoices.Add("Markdown Text", new List<string>() { ".txt" });
savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".txt" });

但是,从返回的对象FileSavePicker是 a StorageFile,它所知道的只是扩展名 ,.txt

如何允许用户在具有相同文件扩展名的一堆选项之间进行选择?有没有办法做到这一点?

4

2 回答 2

0

我觉得你做不到。正如链接所说,也是。也许您可以在设置窗格中添加一个选项,以使用默认类型。我的意思是:您添加的默认类型是纯文本。但是用户可以转到设置并更改此内容。

通过这种方式,您将选项添加到您的用户,但不要用另一个文件保存控件填充 gui

于 2014-03-03T17:51:06.310 回答
0

这不是直接支持的,因为系统仅将每个文件扩展名识别为单一类型。不过,您确实有一些选择。

  • 为每种文件类型创建不同的文件类型
  • 为每种文件类型创建不同的文件类型,然后.txt在他们选择文件后将文件重命名为。

前任:

savePicker.FileTypeChoices.Add("Markdown Text", new List<string>() { ".mtxt" });
savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".ptxt" });

var file = await savePicker.PickSaveFileAsync();
await file.RenameAsync(file.DisplayName + ".txt");

这有一个危险,如果他们已经有一个同名的文件,它不会警告他们,所以不一定建议。

  • 在用于保存提供选项的文件的按钮旁边有一个复选框/下拉菜单。

其中,第一个或第三个是最理想的。如果它们之间存在差异,最好在文件系统中区分它。如果仍然不希望这样做,那么在他们选择保存之前给他们一个选项是最好的选择。

编辑:@Krekkon 的想法也不错。将选项添加到设置弹出框是一个好主意。您需要通知他们该选项存在。另一种选择是使用类似 a 的东西,MessageDialog它会弹出三个按钮:Save as Plain TextSave as MarkupCancel。不幸的是,这会在流程中添加点击,因此可能并不理想。我个人认为在保存按钮旁边添加一个简单的控件很简单。

于 2014-03-03T17:52:21.123 回答