Egy alapszintű C++/WinRT Windows UI-könyvtár 2 példa (UWP)

Ez a témakör végigvezeti az Windows UI-könyvtár (WinUI) alapszintű támogatásának A C++/WinRT UWP projekthez való hozzáadásának folyamatán. Ez a témakör a WinUI 2-vel foglalkozik, amely UWP-alkalmazásokhoz készült. Asztali alkalmazások esetén a WinUI 3 található. A WinUI egyébként C++/WinRT nyelven íródott.

Fontos

Asztali alkalmazások esetén a Windows App SDKWindows UI-könyvtár (WinUI) 3-at biztosít. A WinUI 3 nem használható a jelen témakörben ismertetett útmutatóval, amely az UWP-hez készült. Lásd még: Migrálás az UWP-ről a Windows App SDK.

Note

A Windows UI-könyvtár (WinUI) eszközkészlet NuGet-csomagokként érhető el, amelyeket bármely meglévő vagy új projekthez hozzáadhat a Visual Studio használatával, amint az ebben a témakörben is látható. További háttér-, beállítás- és támogatási információkért tekintse meg a Windows UI-könyvtár használatának első lépéseit.

Üres alkalmazás létrehozása (HelloWinUICppWinRT)

A Visual Studio hozzon létre egy új UWP-projektet az Üres alkalmazás (C++/WinRT) projektsablon használatával (WinUI 3 asztali alkalmazások esetén használja az Üres alkalmazás, Csomagolt (WinUI 3 in Desktop) sablont). Győződjön meg arról, hogy a (C++/WinRT) sablont használja, és nem az (univerzális Windows) sablont.

Állítsa az új projekt nevét HelloWinUICppWinRT értékre, és (hogy a mappaszerkezet megfeleljen az útmutatónak) törölje a jelölést a A megoldás és a projekt elhelyezése ugyanabban a könyvtárban jelölőnégyzetből.

Telepítse a Microsoft.UI.Xaml NuGet-csomagot

Kattintson a Project>NuGet-csomagok kezelése...>Tallózás elemre, írja be vagy illessze be a(z) Microsoft.UI.Xaml kifejezést a keresőmezőbe, jelölje ki az elemet a keresési eredmények közül, majd kattintson a Telepítés gombra a csomag projektbe való telepítéséhez (megjelenik egy licencszerződés elfogadására szolgáló kérdés is). Ügyeljen arra, hogy csak a Microsoft.UI.Xaml csomagot telepítse, ne a Microsoft.UI.Xaml.Core.Direct csomagot.

WinUI-alkalmazáserőforrások deklarálása

Nyissa meg App.xaml és illessze be a következő korrektúrát a meglévő nyitó és záró alkalmazáscímkék között.

<Application.Resources>
    <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/>
</Application.Resources>

WinUI-vezérlő hozzáadása a MainPage-hez

Ezután nyissa meg a(z) MainPage.xaml elemet. A meglévő nyitóoldalcímkében van néhány xml-névtér-deklaráció. Adja hozzá az XML-névtér deklarációt xmlns:muxc="using:Microsoft.UI.Xaml.Controls". Ezután illessze be a következő korrektúrát a meglévő nyitó és záró oldalcímkék közé, felülírva a meglévő StackPanel-elemet.

<muxc:NavigationView PaneTitle="Welcome">
    <TextBlock Text="Hello, World!" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource TitleTextBlockStyle}"/>
</muxc:NavigationView>

Szükség szerint szerkessze a pch.h-t

Ha egy NuGet-csomagot ad hozzá egy C++/WinRT-projekthez (például a korábban hozzáadott Microsoft.UI.Xaml csomagot), majd lefordítja a projektet, az eszközök létrehoznak egy készletnyi projekciós fejlécfájlt a projekt \Generated Files\winrt mappájában. Ha követte az útmutatót, most már rendelkezik egy \HelloWinUICppWinRT\HelloWinUICppWinRT\Generated Files\winrt mappával. Ha be szeretné vonni ezeket a fejlécfájlokat a projektbe, hogy az új típusokra mutató hivatkozások feloldódjanak, az előre összeállított fejlécfájlba (általában pch.h) beviheti őket, és belefoglalhatja őket.

Csak a használt típusoknak megfelelő fejléceket kell tartalmaznia. De itt van egy példa, amely tartalmazza a(z) Microsoft.UI.Xaml csomaghoz létrehozott összes headerfájlt.

// 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 szerkesztése

A MainPage.cpp helyen törölje a MainPage::ClickHandler implementációján belüli kódot, mivel a myButton már nem szerepel az XAML-jelölőben.

Most már létrehozhatja és futtathatja a projektet.

Egyszerű C++/WinRT Windows UI-könyvtár képernyőkép