Предлагая несколько типов файлов с одинаковым расширением через FileSavePicker

В моем приложении WinRT / Windows Store я хочу разрешить пользователю сохранять файл в виде обычного текста или текста уценки через FileSavePicker,

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

Тем не менее, возвращенный объект из FileSavePicker это StorageFileи все, что он знает, это расширение, .txt,

Как мне разрешить пользователю выбирать между кучей опций с одинаковым расширением файла? Есть ли способ сделать это?

2 ответа

Решение

Это не поддерживается напрямую, потому что система распознает только каждое расширение файла как один тип. У вас есть несколько вариантов, хотя.

  • Создать разные типы файлов для каждого типа файлов
  • Создайте отдельный тип файла для каждого типа файла, затем переименуйте файл в .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, К сожалению, это добавит клик в поток, поэтому может быть не идеальным. Лично я думаю, что добавить простой элемент управления рядом с кнопкой сохранения просто и хорошо.

Я думаю, что вы не можете сделать это. Как говорит ссылка тоже. Возможно, вы можете добавить опцию в панели настроек, чтобы использовать тип по умолчанию. Я имею в виду: вы добавляете тип по умолчанию - простой текст. Но пользователь может перейти к настройкам и изменить эту вещь.

Таким образом, вы добавляете опцию к своим пользователям, но не заполняете графический интерфейс другим элементом управления сохранением файлов.

Другие вопросы по тегам