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


Начало работы с WinUI 2

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

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

Примечание.

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

Скачивание и установка WinUI

  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.

    Снимок экрана: панель Обозревателя решений с открытым с помощью щелчка правой кнопкой проектом и выделенным параметром
    Панель Обозревателя решений с открытым с помощью щелчка правой кнопкой проектом и выделенным параметром "Управление пакетами NuGet".

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

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

    Снимок экрана: диалоговое окно диспетчера пакетов NuGet с открытой вкладкой
    Диалоговое окно диспетчера пакетов NuGet с открытой вкладкой "Обзор", в поле поиска которой отображается запись "winui", и флажком "Включить предварительные выпуски".

  5. Добавьте ресурсы темы 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>
...

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

Участие в WinUI

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

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

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