Начало работы с WinUI 2
WinUI 2.8 — это последняя стабильная версия WinUI, которую можно использовать для создания рабочих приложений UWP (и классических приложений с помощью XAML Islands).
Эта библиотека доступна в виде пакета NuGet, который можно добавить в любой новый или существующий проект Visual Studio.
Примечание.
Дополнительные сведения о создании классических приложений Windows с последней версией WinUI 3 см. в статье WinUI 3.
Скачивание и установка WinUI
Скачайте Visual Studio 2022 и убедитесь, что вы выбрали рабочую нагрузку разработки универсальная платформа Windows в установщике Visual Studio.
Откройте существующий проект или создайте новый проект с помощью шаблона "Пустое приложение"в Visual C# -> Windows -> Универсальный, или используя соответствующий шаблон для вашей языковой проекции.
Внимание
Чтобы использовать WinUI 2.8, необходимо задать TargetPlatformVersion = 10.0.18362.0 и TargetPlatformMinVersion >>= 10.0.17763.0 в свойствах проекта.
На панели обозревателя решений щелкните название проекта правой кнопкой мыши и выберите Управление пакетами NuGet.
Панель Обозревателя решений с открытым с помощью щелчка правой кнопкой проектом и выделенным параметром "Управление пакетами NuGet".В диспетчере пакетов NuGet перейдите на вкладку Обзор и выполните поиск по запросу Microsoft.UI.Xaml или WinUI. Выберите, какие пакеты NuGet WinUI необходимо использовать ( пакет Microsoft.UI.Xaml содержит элементы управления Fluent и функции, подходящие для всех приложений). Щелкните Установить.
Установите флажок "Включить предварительные выпуски", чтобы просмотреть последние предварительные версии, включающие экспериментальные новые функции.
Диалоговое окно диспетчера пакетов NuGet с открытой вкладкой "Обзор", в поле поиска которой отображается запись "winui", и флажком "Включить предварительные выпуски".Добавьте ресурсы темы WinUI в файл App.xaml.
Это можно сделать двумя способами, в зависимости от наличия дополнительных ресурсов приложения.
a. Если вам не нужны другие ресурсы приложений, добавьте элемент ресурсов WinUI
<XamlControlsResources
как показано в следующем примере:<Application x:Class="ExampleApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" RequestedTheme="Light"> <Application.Resources> <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" /> </Application.Resources> </Application>
b. Если у вас есть другие ресурсы, мы рекомендуем добавить их в
XamlControlsResources.MergedDictionaries
. Это работает с системой ресурсов платформы, чтобы разрешить переопределение ресурсовXamlControlsResources
.<Application x:Class="ExampleApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="using:Microsoft.UI.Xaml.Controls" RequestedTheme="Light"> <Application.Resources> <controls:XamlControlsResources> <controls:XamlControlsResources.MergedDictionaries> <ResourceDictionary Source="/Styles/Styles.xaml"/> <!-- Other app resources here --> </controls:XamlControlsResources.MergedDictionaries> </controls:XamlControlsResources> </Application.Resources> </Application>
Добавьте ссылку на пакет WinUI на страницы XAML и (или) страницы кода программной части.
На странице XAML добавьте ссылку в верхней части страницы.
xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
В коде (если вы хотите использовать имена типов без их уточнения), можно добавить директиву using.
using MUXC = Microsoft.UI.Xaml.Controls;
Дополнительные шаги для проекта C++/WinRT
Когда вы добавляете пакет NuGet в проект C++/WinRT, средство создает набор заголовков проекции в папке проекта \Generated Files\winrt
. Чтобы поместить эти файлы с заголовками в свой проект и чтобы ссылки на эти новые типы работали, можно перейти к предварительно откомпилированному файлу заголовка (обычно pch.h
) и включить их в файл проекта. Ниже приведен пример, включающий созданные файлы заголовков для пакета Microsoft.UI.Xaml.
// pch.h
...
#include <winrt/Microsoft.UI.Xaml.Automation.Peers.h>
#include <winrt/Microsoft.UI.Xaml.Controls.Primitives.h>
#include <winrt/Microsoft.UI.Xaml.Media.h>
#include <winrt/Microsoft.UI.Xaml.XamlTypeInfo.h>
...
Полное пошаговое руководство по добавлению простой поддержки WinUI в проект C++/WinRT см . в простом примере C++/WinRT WinUI.
Участие в WinUI
Мы приветствуем отчеты об ошибках, запросы функций и вклады кода сообщества в репозитории Microsoft-ui-xaml на GitHub.
Другие ресурсы
Если вы не знакомы с UWP, рекомендуем ознакомится со статьей Приступая к работе с приложениями для Windows 10 на портале разработчика.
Windows developer