Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описывается процесс добавления базовой поддержки Windows UI Library (WinUI) в проект UWP C++/WinRT. В частности, в этом разделе рассматриваются функции WinUI 2, которые предназначены для приложений UWP. Для настольных приложений есть WinUI 3. Кстати, WinUI сама написана в C++/WinRT.
Это важно
Для настольных приложений Windows App SDK предоставляет Windows UI Library (WinUI) 3. WinUI 3 не предназначен для работы с пошаговым руководством в этом разделе, который предназначен для UWP. См. также раздел "Миграция из UWP в Windows App SDK".
Note
Набор средств Windows UI Library (WinUI) доступен как пакеты NuGet, которые можно добавить в любой существующий или новый проект с помощью Visual Studio, как показано в этом разделе. Дополнительные сведения, информацию по установке и поддержке см. в статье Начало работы с библиотекой интерфейса Windows.
Создание пустого приложения (HelloWinUICppWinRT)
В Visual Studio создайте новый проект UWP с помощью шаблона проекта Blank App (C++/WinRT) (для настольных приложений WinUI 3 используйте шаблон Blank App, Packaged (WinUI 3 in Desktop)). Убедитесь, что вы используете шаблон (C++/WinRT), а не (Универсальная платформа Windows).
Задайте имя нового проекта HelloWinUICppWinRT и (чтобы структура ваших папок соответствовала пошаговому руководству) снимите флажок Поместить решение и проект в один каталог.
Установите пакет NuGet Microsoft.UI.Xaml
Щелкните Project>Manage NuGet Packages...>Обзор, введите или вставьте Microsoft.UI.Xaml в поле поиска, выберите элемент в результатах поиска, а затем нажмите Install, чтобы установить пакет в проект (также появится запрос на принятие лицензионного соглашения). Убедитесь, что установлен только пакет Microsoft.UI.Xaml, а не Microsoft.UI.Xaml.Core.Direct.
Объявление ресурсов приложения WinUI
Откройте App.xaml и вставьте следующую разметку между существующими тегами открытия и закрытия приложений .
<Application.Resources>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/>
</Application.Resources>
Добавление элемента управления WinUI в MainPage
Затем откройте MainPage.xaml. В существующем открывающем теге Page есть несколько объявлений пространства имён XML. Добавьте объявление пространства имён XML xmlns:muxc="using:Microsoft.UI.Xaml.Controls". Затем вставьте следующую разметку между существующими тегами открытия и закрытия страниц , перезаписав существующий элемент StackPanel .
<muxc:NavigationView PaneTitle="Welcome">
<TextBlock Text="Hello, World!" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource TitleTextBlockStyle}"/>
</muxc:NavigationView>
При необходимости измените pch.h
Когда вы добавляете пакет NuGet в проект C++/WinRT (например, пакет Microsoft.UI.Xaml, который вы добавили ранее) и собираете проект, средства сборки создают набор заголовочных файлов проекции в папке \Generated Files\winrt вашего проекта. Если вы следовали пошаговому руководству, то теперь у вас есть папка \HelloWinUICppWinRT\HelloWinUICppWinRT\Generated Files\winrt. Чтобы перенести эти файлы заголовков в проект, чтобы ссылки на эти новые типы разрешались, можно перейти в предварительно скомпилируемый файл заголовка (обычно pch.h) и включить их.
Необходимо включить только заголовки, соответствующие используемым типам. Но вот пример, в котором представлены все сгенерированные заголовочные файлы для пакета Microsoft.UI.Xaml.
// pch.h
...
#include "winrt/Microsoft.UI.Xaml.Automation.Peers.h"
#include "winrt/Microsoft.UI.Xaml.Controls.h"
#include "winrt/Microsoft.UI.Xaml.Controls.Primitives.h"
#include "winrt/Microsoft.UI.Xaml.Media.h"
#include "winrt/Microsoft.UI.Xaml.XamlTypeInfo.h"
...
Изменить MainPage.cpp
В MainPage.cpp удалите код из своей реализации MainPage::ClickHandler, так как myButton больше не присутствует в разметке XAML.
Теперь вы можете создать и запустить проект.
Связанные темы
Windows developer