2014-03-03 64 views
0

在我的WinRT/Windows應用商店應用程序中,我希望允許用戶通過FileSavePicker將文件保存爲純文本或降價文本。通過FileSavePicker提供具有相同擴展名的多個文件類型

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

然而,從FileSavePicker返回的對象是一個StorageFile,和所有它知道是擴展,.txt

如何讓用戶在一堆選項中選擇相同的文件擴展名?有沒有辦法做到這一點?

回答

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的想法也很好。將該選項添加到設置彈出窗口是個不錯的主意。您需要通知他們該選項存在。另一種選擇是使用類似MessageDialog這樣的彈出三個按鈕:Save as Plain Text,Save as Markup,Cancel。這不幸的是會添加點擊流量,因此可能不理想。就個人而言,我認爲在保存按鈕旁添加一個簡單的控件非常簡單。

+0

謝謝Nate。一如既往的有用! – roryok

0

我認爲你不能這樣做。正如link所說的那樣。 也許您可以在設置窗格中添加一個選項,以使用默認類型。我的意思是: 您添加的默認類型是純文本。但用戶可以去設置並改變這個東西。

這樣,你的選項添加到您的用戶,但不補的另一個文件中的GUI節能控制

相關問題