Navigation hinzufügen
Linkes Seitenmenü zur Oberfläche hinzufügen
Ein neues WinUI-C++-Projekt erstellen
MainWindow.xaml öffnen
Nur den inneren Grid-Bereich durch den unten gezeigten NavigationView ersetzen (die gesamte Datei nicht überschreiben)
<NavigationView x:Name="NavView" PaneDisplayMode="Left">
<NavigationView.MenuItems>
<NavigationViewItem Content="Dashboard" Tag="DashboardPage"
Icon="Account"/>
<NavigationViewItem Content="Account" Tag="AnalyticsPage"
Icon="Add"/>
</NavigationView.MenuItems>
<Frame x:Name="MainFrame"/>
</NavigationView>Code-Sprache: HTML, XML (xml)

So sieht die Oberfläche nach dem Ausführen aus

Leere Seite hinzufügen
Eine leere Seite erstellen
Rechtsklick auf den Projektnamen → Neues Element hinzufügen (Add New Item)
Navigiere zu Visual C++ → WinUI → Vorlage BlankPage.xaml für leere Seiten
Bearbeite den Grid-Bereich in BlankPage.xaml wie unten gezeigt. Zur visuellen Unterscheidung enthält jede Seite ein TextBlock mit eigenem Text.
Page und Window sind zwei unterschiedliche Steuerelemente
<Grid>
<TextBlock Text="This is a blank page."
HorizontalAlignment="Center"
VerticalAlignment="Center" FontSize="24"/>
</Grid>Code-Sprache: C++ (cpp)

Navigationsleiste und Seitenladelogik
Standard-Leerseite für das Hauptfenster festlegen
Konfiguriere das Frame-Steuerelement im Hauptfenster, sodass es standardmäßig die neu erstellte leere Seite lädt
Frame funktioniert ähnlich wie ein iframe in HTML: Es ist ein separater Bereich, um Inhalt einer anderen Seite zu laden und anzuzeigen.
MainWindow.xaml.h öffnen
Entferne die Implementierung des Konstruktors aus der Header-Datei, behalte nur die Deklaration.

Es soll nur noch lauten: MainWindow();

Implementiere den Konstruktor im zugehörigen .cpp-File.
#include "pch.h"
#include "MainWindow.xaml.h"
#if __has_include("MainWindow.g.cpp")
#include "MainWindow.g.cpp"
#endif
using namespace winrt;
using namespace Microsoft::UI::Xaml;
#include "BlankPage.xaml.h"
#include <winrt/Windows.UI.Xaml.Interop.h>
// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.
namespace winrt::App5::implementation
{
// Die Konstruktorimplementierung liegt im cpp-File, um UI-Initialisierung und Seitenwechsel sicher durchzuführen
MainWindow::MainWindow()
{
InitializeComponent();
// Lade und zeige BlankPage im Frame an
MainFrame().Navigate(xaml_typename<App5::BlankPage>());
}
int32_t MainWindow::MyProperty()
{
throw hresult_not_implemented();
}
void MainWindow::MyProperty(int32_t /* value */)
{
throw hresult_not_implemented();
}
}
Code-Sprache: PHP (php)

Für die Nutzung von xaml_typename muss folgender Header eingebunden werden
#include <winrt/Windows.UI.Xaml.Interop.h>Code-Sprache: HTML, XML (xml)
Der Code MainFrame().Navigate(xaml_typename()) sorgt für die Navigation zur BlankPage. Beim Start des Hauptfensters zeigt der rechte MainFrame-Bereich diese leere Seite an.

Konfiguration des linken Menüs und der Seitenladelogik für das Hauptfenster abgeschlossen