Поделиться через


Модернизируйте существующие настольные приложения

Вам не нужно переписать WPF, Windows Forms или приложение Win32, чтобы воспользоваться современными функциями Windows. Windows App SDK и более широкие Windows платформы предлагают модульные возможности, которые можно применять постепенно, в собственном темпе.

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

Выбор пути модернизации

Я хочу... Рекомендуемый подход
Добавление современных элементов управления пользовательского интерфейса (Fluent, округленные угла, темный режим) в мое приложение WPF или Win32 Размещение WinUI контролов в приложении WPF (XAML Islands)
Использование функций платформы Windows (уведомления, общий доступ, средства выбора файлов) в приложении WPF или WinForms Вызов среда выполнения Windows API в настольных приложениях
Упаковка приложения для Microsoft Store или корпоративного развертывания Упаковка настольного приложения с помощью MSIX
Разблокируйте функции, требующие удостоверения пакета (push-уведомления, фоновые задачи, расширения приложений, api Windows ИИ, общий доступ к целевым объектам и многое другое) Предоставление удостоверения для непакетированного приложения
Интегрируйте моё приложение с функциями оболочки Windows 11 (макеты привязки, контекстные меню, панель задач) Интеграция с функциями Windows 11
Переход к полностью современному приложению с помощью WinUI 3 с течением времени Миграция на WinUI 3
Добавьте возможности искусственного интеллекта на устройство в моё настольное приложение. Windows AI Foundry

Что такое Windows App SDK?

Windows App SDK — это рекомендуемый способ доступа к современным функциям платформы Windows из любого классического приложения — WPF, Windows Forms, Win32 или WinUI 3. Он обеспечивает согласованный набор версионированных API, работающих как в Windows 10, так и в Windows 11, отвязанных от цикла выпуска ОС.

Вы можете использовать Windows App SDK в существующем приложении, не изменяя платформу пользовательского интерфейса. Добавьте его в виде пакета NuGet и вызовите его API вместе с существующим кодом.

Добавление современного пользовательского интерфейса без полной перезаписи

Вы можете разместить элементы управления WinUI 3 в существующих окнах приложений WPF или Win32 с помощью Windows App SDK. Это позволяет постепенно модернизировать пользовательский интерфейс ( одно окно или диалоговое окно за раз) без переноса всего приложения.

Рекомендации по размещению и использованию элементов управления WinUI 3 в существующем приложении см. в разделе "Host WinRT XAML controls in desktop apps (XAML Islands)". Сведения о низкоуровневых визуальных эффектах и анимациях см. в статье "Модернизация классического приложения с помощью визуального слоя".

Вызов API среда выполнения Windows

Многие функции платформы Windows — push-уведомления, контракт общего доступа, средства выбора файлов, Bluetooth и многое другое — предоставляются через API-интерфейсы среда выполнения Windows (WinRT). Эти API можно вызывать непосредственно из приложений WPF, Windows Forms и C++ Win32.

Дополнительные сведения см. в разделе Вызов API среды выполнения Windows в настольных приложениях.

Пакет с помощью MSIX

Упаковка вашего приложения в формате MSIX обеспечивает современный и надежный процесс установки, полноценное удаление, автоматическое обновление и доступ к Microsoft Store, а также корпоративным конвейерам развертывания. Упаковка MSIX отличается от модернизации кода приложения— вы можете упаковывать приложение WPF или Win32 с помощью MSIX, не изменяя исходный код.

Дополнительные сведения см. в статье о создании пакета MSIX из кода.

Функции, которым требуется идентификатор пакета

Некоторые функции платформы Windows, включая push-уведомления, фоновые задачи, расширения приложений, механизмы общего доступа, Windows AI Foundry API-интерфейсы, ассоциации файлов и задачи запуска, требуют, чтобы приложение было package identity во время выполнения. Можно предоставить идентификатор для приложения без полного пакета MSIX. Этот подход иногда называется разреженным пакетом или упаковкой с внешним расположением.

Дополнительные сведения можно найти здесь

Интеграция с функциями оболочки Windows 11

Windows 11 представлена новая точка интеграции оболочки — макеты оснастки, обновленные контекстные меню, круглые угловые окна и интеграция панели задач. Многие из них доступны для неупакованных десктопных приложений без изменений кода. Для других требуются расширения упаковки.

Дополнительные сведения см. в разделе Интеграция вашего настольного приложения в Windows с помощью расширений для упаковки.

Миграция на WinUI 3

Если вы планируете более крупные усилия по модернизации ( или создание новых функций в виде отдельных модулей) рассмотрите возможность создания новых компонентов с помощью WinUI 3 и Windows App SDK. WinUI 3 — это современная собственная платформа пользовательского интерфейса для настольных приложений Windows и рекомендуется для разработки новых приложений.

Чтобы приступить к работе, см. статью "Создание первого приложения WinUI 3 ".