Een eenvoudig C++/WinRT-Windows UI-bibliotheek 2-voorbeeld (UWP)

In dit onderwerp wordt u begeleid bij het toevoegen van basisondersteuning voor de Windows UI-bibliotheek (WinUI) aan uw C++/WinRT UWP-project. Dit onderwerp gaat met name over WinUI 2, wat voor UWP-apps is. Voor desktop-apps is er WinUI 3. Daarnaast is WinUI zelf geschreven in C++/WinRT.

Belangrijk

Voor desktop-apps biedt de Windows App SDKWindows UI-bibliotheek (WinUI) 3. WinUI 3 is niet bedoeld voor gebruik met de stapsgewijze handleiding in dit artikel, die voor UWP bedoeld is. Zie Ook Migreren van UWP naar de Windows App SDK.

Note

De Windows UI-bibliotheek toolkit (WinUI) is beschikbaar als NuGet-pakketten die u kunt toevoegen aan een bestaand of nieuw project met behulp van Visual Studio, zoals in dit onderwerp wordt beschreven. Zie Aan de slag met de Windows UI-bibliotheek voor meer achtergrond-, installatie- en ondersteuningsinformatie.

Een lege app maken (HelloWinUICppWinRT)

Maak in Visual Studio een nieuw UWP-project met behulp van de projectsjabloon Blank App (C++/WinRT) (gebruik voor WinUI 3-desktop-apps de sjabloon Blank App, Packaged (WinUI 3 in Desktop)). Zorg ervoor dat u de sjabloon (C++/WinRT) gebruikt en niet de sjabloon (Universal Windows).

Stel de naam van het nieuwe project in op HelloWinUICppWinRT en (zodat de mapstructuur overeenkomt met de walkthrough) schakelt u De oplossing Place en het project in dezelfde map uit.

Installeer het Microsoft.UI.Xaml NuGet-pakket

Klik op Project>NuGet-pakketten beheren...>Bladeren, typ of plak Microsoft.UI.Xaml in het zoekvak, selecteer het item in de zoekresultaten en klik vervolgens op Installeren om het pakket in uw project te installeren (u ziet ook een prompt voor een licentieovereenkomst). Zorg ervoor dat u alleen het pakket Microsoft.UI.Xaml installeert, en niet Microsoft.UI.Xaml.Core.Direct.

Resources van een WinUI-toepassing declareren

Open App.xaml en plak de volgende markup tussen de bestaande openings- en sluitingstags van Application.

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

Een WinUI-besturingselement toevoegen aan MainPage

Open vervolgens MainPage.xaml. In de bestaande openingspaginatag zijn er enkele xml-naamruimtedeclaraties. Voeg de xml-naamruimtedeclaratie xmlns:muxc="using:Microsoft.UI.Xaml.Controls"toe. Plak vervolgens de volgende markeringen tussen de bestaande tags voor het openen en sluiten van pagina's , en overschrijft het bestaande StackPanel-element .

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

Bewerk pch.h, indien nodig

Wanneer u een NuGet-pakket toevoegt aan een C++/WinRT-project (zoals de Microsoft. UI. Het Xaml-pakket, dat u eerder hebt toegevoegd) en het project bouwt, genereert de tooling een set projectieheaderbestanden in de map van \Generated Files\winrt uw project. Als u de stapsgewijze uitleg hebt gevolgd, hebt u nu een \HelloWinUICppWinRT\HelloWinUICppWinRT\Generated Files\winrt-map. Als u deze headerbestanden in uw project wilt opnemen, zodat verwijzingen naar deze nieuwe typen correct worden herkend, kunt u ze opnemen in uw voorgecompileerde headerbestand (meestal pch.h).

U moet alleen de headers opnemen die overeenkomen met de typen die u gebruikt. Maar hier volgt een voorbeeld met alle gegenereerde headerbestanden voor de Microsoft. UI. Xaml pakket.

// 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 bewerken

MainPage.cppVerwijder de code in uw implementatie van MainPage::ClickHandler, omdat myButton zich niet meer in de XAML-markering bevindt.

U kunt nu de project bouwen en uitvoeren.

Schermopname van eenvoudige C++/WinRT-Windows UI-bibliotheek