Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieses Thema führt Sie durch den Prozess des Hinzufügens grundlegender Unterstützung für die Windows-UI-Bibliothek (WinUI) zu Ihrem C++/WinRT-UWP-Projekt. Insbesondere befasst sich dieses Thema mit WinUI 2, das für UWP-Apps gilt. Für Desktop-Apps gibt es WinUI 3. Übrigens ist WinUI selbst in C++/WinRT geschrieben.
Important
Für Desktop-Apps stellt die Windows App SDKWindows-UI-Bibliothek (WinUI) 3 bereit. WinUI 3 ist nicht dafür gedacht, mit der Schritt-für-Schritt-Anleitung in diesem Artikel zu funktionieren, die für UWP vorgesehen ist. Siehe auch "Migrieren von UWP zum Windows App SDK".
Note
Das Windows-UI-Bibliothek (WinUI)-Toolkit ist als NuGet-Pakete verfügbar, die Sie einem vorhandenen oder neuen Projekt mithilfe von Visual Studio hinzufügen können, wie in diesem Thema zu sehen ist. Weitere Informationen zu Hintergrund, Setup und Support finden Sie unter "Erste Schritte mit dem Windows-UI-Bibliothek".
Erstellen einer leeren App (HelloWinUICppWinRT)
Erstellen Sie in Visual Studio ein neues UWP-Projekt mithilfe der Projektvorlage „Leere App (C++/WinRT)“ (für WinUI 3-Desktop-Apps verwenden Sie die Vorlage „Leere App, paketiert (WinUI 3 in Desktop)“). Stellen Sie sicher, dass Sie die Vorlage (C++/WinRT) und nicht die (universelle Windows) verwenden.
Legen Sie den Namen des neuen Projekts auf HelloWinUICppWinRT fest, und deaktivieren Sie (damit Ihre Ordnerstruktur mit der Schritt-für-Schritt-Anleitung übereinstimmt) die Option Projektmappen und Projekte im selben Verzeichnis speichern.
Installieren Sie das Microsoft.UI.Xaml-NuGet-Paket
Klicken Sie auf Projekt>NuGet-Pakete verwalten...>Durchsuchen, geben Sie Microsoft.UI.Xaml in das Suchfeld ein oder fügen Sie es dort ein, wählen Sie den Eintrag in den Suchergebnissen aus, und klicken Sie dann auf Installieren, um das Paket in Ihrem Projekt zu installieren (außerdem wird eine Aufforderung zur Annahme des Lizenzvertrags angezeigt). Achten Sie darauf, nur das Paket Microsoft.UI.Xaml und nicht Microsoft.UI.Xaml.Core.Direct zu installieren.
Deklarieren von WinUI-Anwendungsressourcen
Öffnen Sie App.xaml und fügen Sie das folgende Markup zwischen die vorhandenen öffnenden und schließenden Tags Application ein.
<Application.Resources>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/>
</Application.Resources>
Hinzufügen eines WinUI-Steuerelements zu "MainPage"
Öffnen Sie als Nächstes MainPage.xaml. Im vorhandenen öffnenden Page-Tag gibt es einige XML-Namespacedeklarationen. Fügen Sie die XML-Namespacedeklaration xmlns:muxc="using:Microsoft.UI.Xaml.Controls"hinzu. Fügen Sie dann das folgende Markup zwischen den vorhandenen öffnenden und schließenden Page-Tags ein, und überschreiben Sie das vorhandene StackPanel-Element .
<muxc:NavigationView PaneTitle="Welcome">
<TextBlock Text="Hello, World!" VerticalAlignment="Center" HorizontalAlignment="Center" Style="{StaticResource TitleTextBlockStyle}"/>
</muxc:NavigationView>
Bearbeiten Sie pch.h nach Bedarf
Wenn Sie einem C++/WinRT-Projekt ein NuGet-Paket hinzufügen (z. B. das Microsoft. Ui. Xaml-Paket, das Sie zuvor hinzugefügt haben) und das Projekt erstellen, generiert das Tool eine Reihe von Projektionsheaderdateien im Ordner Ihres Projekts\Generated Files\winrt. Wenn Sie der Schritt-für-Schritt-Anleitung gefolgt sind, haben Sie jetzt einen \HelloWinUICppWinRT\HelloWinUICppWinRT\Generated Files\winrt-Ordner. Wenn Sie diese Headerdateien in Ihr Projekt übertragen möchten, damit Verweise auf diese neuen Typen aufgelöst werden, können Sie in die vorkompilierte Headerdatei (in der Regel pch.h) wechseln und diese einschließen.
Sie müssen nur die Kopfzeilen einschließen, die den verwendeten Typen entsprechen. Aber hier ist ein Beispiel, das alle generierten Headerdateien für das Paket Microsoft.UI.Xaml enthält.
// 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 bearbeiten
MainPage.cppLöschen Sie den Code in Ihrer Implementierung von MainPage::ClickHandler, da myButton nicht mehr im XAML-Markup enthalten ist.
Sie können jetzt das Projekt erstellen und ausführen.
Zugehörige Themen
Windows developer