Начало работы с библиотекой пользовательского интерфейса Windows 2

Библиотека пользовательского интерфейса Windows 2.8 — это последняя стабильная версия WinUI, которую можно использовать для создания рабочих приложений UWP (и классических приложений, использующих XAML Islands).

Эта библиотека доступна в виде пакета NuGet, который можно добавить в любой новый или существующий проект Visual Studio.

Примечание.

Дополнительные сведения о создании классических приложений Windows с использованием последней версии WinUI 3 см. в статье Библиотека пользовательского интерфейса Windows 3.

Загрузка и установка библиотеки пользовательского интерфейса Windows

  1. Скачайте Visual Studio 2022 и убедитесь, что вы выбрали рабочую нагрузку разработки универсальная платформа Windows в установщике Visual Studio.

  2. Откройте существующий проект или создайте новый проект с помощью шаблона "Пустое приложение"в Visual C# -> Windows -> Универсальный, или используя соответствующий шаблон для вашей языковой проекции.

    Важно!

    Чтобы использовать WinUI 2.8, необходимо задать TargetPlatformVersion = 10.0.18362.0 и TargetPlatformMinVersion >>= 10.0.17763.0 в свойствах проекта.

  3. На панели обозревателя решений щелкните название проекта правой кнопкой мыши и выберите Управление пакетами NuGet.

    Screenshot of the Solution Explorer panel with the project right-clicked and the Manage NuGet Packages option highlighted.
    Панель Обозревателя решений с открытым с помощью щелчка правой кнопкой проектом и выделенным параметром "Управление пакетами NuGet".

  4. В диспетчере пакетов NuGet перейдите на вкладку Обзор и выполните поиск по запросу Microsoft.UI.Xaml или WinUI. Выберите нужные пакеты NuGet для библиотеки пользовательского интерфейса Windows (пакет Microsoft.UI.Xaml содержит элементы управления и функции, которые подходят для любых приложений). Щелкните Установить.

    Установите флажок "Включить предварительные выпуски", чтобы просмотреть последние предварительные версии, включающие экспериментальные новые функции.

    Screenshot of the NuGet Package Manager dialog box showing the Browse tab with winui in the search field and Include prerelease checked.
    Диалоговое окно диспетчера пакетов NuGet с открытой вкладкой "Обзор", в поле поиска которой отображается запись "winui", и флажком "Включить предварительные выпуски".

  5. Добавьте ресурсы темы пользовательского интерфейса Windows (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>
    
  6. Добавьте ссылку на пакет 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>
...

Полное пошаговое руководство по добавлению простой поддержки библиотеки пользовательского интерфейса Windows в проект C++/WinRT см. в статье Простой пример библиотеки пользовательского интерфейса Windows для C++/WinRT.

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

Мы приветствуем отчеты об ошибках, запросы функций и вклады кода сообщества в репозитории Microsoft-ui-xaml на GitHub.

Другие ресурсы

Если вы не знакомы с UWP, рекомендуем ознакомится со статьей Приступая к работе с приложениями для Windows 10 на портале разработчика.