Краткое руководство: интеграция с контрактами средств выбора файлов (приложения среды выполнения Windows)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

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

Необходимые условия

Решите, какие службы ваше приложение будет предоставлять из окна средства выбора файлов

Ваше приложение может предоставлять следующие услуги другим приложениям, интегрируясь со связанным контрактом приложений. Чтобы участвовать в контракте, вам нужно объявить его в манифесте вашего приложения, ответить на соответствующее активированное событие и создать специализированное представление приложения.

Доступ к файлам

Если в вашем приложении имеется какое-то уникальное или ценное представление файлов, а также если пользователям сложно обращаться к файлам другим способом, предоставьте доступ к файлам в средстве выбора файлов.

Контракт приложений: контракт выбора файлов в окне открытия

Сведения об активированном событии: fileOpenPickerActivatedEventArgs

Место сохранения файлов

Если вы предполагаете, что пользователи захотят сохранять свои файлы для последующей работы с ними в вашем приложении, предусмотрите место сохранения файлов в средстве выбора файлов.

Контракт приложений: контракт выбора файлов в окне сохранения

Сведения об активированном событии: fileSavePickerActivatedEventArgs

Обновление информации о файлах в реальном времени

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

Контракт приложений: контракт обновления кэшированных файлов

Сведения об активированном событии: cachedFileUpdaterActivatedEventArgs

Дополнительные сведения о службах, которые может предоставлять ваше приложение с помощью средства выбора файлов, см. в разделе Доступ к файлам с помощью средства выбора файлов.

Объявите контракт в манифесте вашего приложения

Откройте проект в Microsoft Visual Studio и выполните следующие действия, чтобы добавить контракт приложений в манифест.

  1. Добавьте контракт приложения, для чего переместите на передний план окно Добавить новый элемент для вашего приложения, выберите контракт на центральной панели и нажмите кнопку Добавить.

    Переместить на передний план окно Добавление нового элемента в Visual Studio можно несколькими способами.

    • Выбрав команду меню Проект > Добавить новый элемент...
    • Выбрав команду меню Добавить > Новый элемент... в контекстном меню проекта
    • С помощью сочетания клавиш CTRL+SHIFT+A

    Совет  Когда вы добавите эти контракты, Visual Studio автоматически обновит файл манифеста "package.appmanifest" и добавит в проект файлы для определения макета и логики работы представления, которое будет располагаться в окне средства выбора файлов при вызове службы вашего приложения.

     

  2. Если параметры по умолчанию не подходят для вашего приложения, измените параметры контракта в Visual Studio.

    1. Откройте файл "package.appmanifest".

    2. Откройте вкладку Объявления.

    3. Выберите имя для вашего контракта из списка Поддерживаемые объявления.

    4. Добавьте поддержку особых типов файлов

      В окне Поддерживаемые типы файлов снимите флажок SupportsAnyFileType.

      Добавьте поле FileType для каждого типа файла, который нужно поддержать, выполнив следующие действия:

      1. Нажмите кнопку Добавить новый.
      2. Введите расширение типа файла, который нужно поддерживать, в полеFileType, например: *.ext

      Совет  Добавьте только те типы файлов, которые непосредственно относятся к вашему приложению, вашим пользователям и контракту. Подобное ограничение типов файлов может помочь сохранить порядок и простоту использования для представления средства выбора файлов.

       

    Вы можете также удалить поддержку типа файла, выполнив предыдущие шаги и нажав кнопку Удалить для типа, который нужно удалить. Кнопка Удалить расположена непосредственно над полем FileType.

В файл манифеста автоматически вносится добавленная вами разметка для контракта. Элемент, представляющий добавленный вами контракт, вставляется в разметку XML манифеста как дочерний элемент элемента Extensions. Например, разметка для контракта выбора файлов в окне открытия, поддерживающая все типы файлов, выглядит следующим образом:


  <Extension Category="windows.filePicker" StartPage="filePicker.html">
    <FileOpenPicker>
      <SupportedFileTypes SupportsAnyFileType="true" />
    </FileOpenPicker>
  </Extension>

Ответная реакция на активацию вашего приложения из средства выбора файлов

Добавьте код к обработчику события, который проверяет, связан ли переданный ему объект с контрактом, который вы объявили в манифесте, а затем отображает представление средства выбора файла вашего приложения.

Каждый контракт связан с объектом, предоставляющим информацию об активированном событии, активируемым, когда одна из служб, предоставляемых вашим приложением, вызывается из средства выбора файлов.

Контракт выбора файлов в окне открытия — fileOpenPickerActivatedEventArgs

Контракт выбора файлов в окне сохранения — fileSavePickerActivatedEventArgs

Контракт обновления кэшированных файлов — cachedFileUpdaterActivatedEventArgs

Создайте специализированное представление вашего приложения, которое будет располагаться в средстве выбора файла

Инструкции, приведенные в разделе Руководство и контрольный список для средств выбора файлов, помогут вам в проектировании представления, которое будет отображаться в средстве выбора файлов вашего приложения.

В конечном счете ваше представление должно состоять из следующих элементов:

  • кода, который настраивает вид горизонтальных полос средства выбора файлов;

  • разметки и стилей, задающих макет заключенной в рамку области средства выбора файлов (области, где отображаются файлы);

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

Протестируйте службы, предоставляемые вашим приложением из средства выбора файлов, которые вызываются другим приложением

Чтобы протестировать службы, предоставляемые вашим приложением из средства выбора файлов, вы должны инициировать активированное событие, соответствующее службе, предоставляемой вашим приложением. Вы не можете инициировать это событие непосредственно, запустив ваше приложение.

Вместо этого выполните следующие действия для инициации соответствующего активированного события для каждого контракта.

Тестирование участия вашего приложения в контракте выбора файлов в окне открытия:

  1. Запустите приложение, отличное от вашего.

  2. Воспользуйтесь пользовательским интерфейсом этого приложения, отличного от вашего, для получения доступа к файлам с помощью окна средства выбора файлов.

  3. Выберите ваше приложение в списке расположений в средстве выбора файлов, чтобы убедиться, что ваше приложение находится в средстве выбора файлов.

Тестирование участия вашего приложения в контракте выбора файлов в окне сохранения:

  1. Запустите приложение, отличное от вашего.

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

  3. Выберите ваше приложение в списке расположений в средстве выбора файлов, чтобы убедиться, что ваше приложение находится в средстве выбора файлов.

Тестирование участия вашего приложения в контракте обновления кэшированных файлов:

  1. Запустите приложение, отличное от вашего.

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

Сводка

Ваше приложение может предоставлять другим приложениям службы, участвуя в контракте приложения. Чтобы участвовать в контракте, необходимо объявить контракт в манифесте вашего приложения, ответить на соответствующее активированное событие и создать специализированное представление приложения.

Связанные разделы

Доступ к данным и файлам

Интеграция с контрактами средства выбора файлов

Образец контрактов "Средство выбора файлов"

Руководство и контрольный список для контрактов "Средство выбора файлов"

Активация приложения

Контракты приложений для Windows

Ссылки

Windows.Storage.Pickers.Provider namespace

Windows.ApplicationModel.Activation.fileOpenPickerActivatedEventArgs class

Windows.ApplicationModel.Activation.fileSavePickerActivatedEventArgs class

Windows.ApplicationModel.Activation.cachedFileUpdaterActivatedEventArgs class

Использование средств выбора файлов

Краткое руководство: доступ к файлам с помощью средства выбора файлов

Сохранение файлов с помощью средства выбора файлов

Руководство и контрольный список для средств выбора файлов