Configuration du menu latéral gauche et du chargement de page de la fenêtre principale terminée

Ajouter une navigation

Ajouter un menu latéral gauche à l’interface

Créer un nouveau projet WinUI C++

Ouvrir MainWindow.xaml

Remplacer uniquement la section Grid interne par un NavigationView comme ci-dessous (ne pas remplacer l’ensemble du fichier)

<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>Langage du code : HTML, XML (xml)

Voici l’affichage après l’exécution du programme


Ajouter une page vide

Créer une page vierge

Faire un clic droit sur le nom du projet → Ajouter un nouvel élément (Add New Item)

Aller dans Visual C++ → WinUI → Modèle de page vide BlankPage.xaml

Modifier la partie Grid de BlankPage.xaml comme suit. On ajoute un TextBlock avec un texte distinct sur chaque page pour les différencier visuellement.

Page et Window sont deux contrôles différents

    <Grid>
        <TextBlock Text="This is a blank page." 
HorizontalAlignment="Center" 
VerticalAlignment="Center" FontSize="24"/>
    </Grid>Langage du code : C++ (cpp)
Barre de navigation et chargement des pages

Définir la page vierge par défaut pour la fenêtre principale

Configurer le contrôle Frame de la fenêtre principale pour charger par défaut la page vierge créée précédemment

Le Frame est comparable à un iframe en HTML : c’est une zone indépendante destinée à charger et afficher le contenu d’une autre page.

Ouvrir MainWindow.xaml.h

Supprimer l’implémentation du constructeur dans l’en-tête, ne conserver que sa déclaration.

Il doit devenir : MainWindow();

Implémenter le constructeur dans le fichier .cpp correspondant.

#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
{
    // L'implémentation du constructeur est placée dans le fichier cpp pour initialiser l'interface et naviguer en toute sécurité
    MainWindow::MainWindow()
    {
        InitializeComponent();
        // Charger et afficher BlankPage dans le Frame
        MainFrame().Navigate(xaml_typename<App5::BlankPage>());
    }

    int32_t MainWindow::MyProperty()
    {
        throw hresult_not_implemented();
    }

    void MainWindow::MyProperty(int32_t /* value */)
    {
        throw hresult_not_implemented();
    }


}
Langage du code : HTML, XML (xml)

La fonction xaml_typename nécessite l’inclusion de l’en-tête suivant

#include <winrt/Windows.UI.Xaml.Interop.h>Langage du code : HTML, XML (xml)

La ligne MainFrame().Navigate(xaml_typename()) permet de naviguer vers BlankPage. Au lancement de la fenêtre principale, le conteneur MainFrame à droite affichera cette page vierge.

Configuration du menu latéral gauche et du chargement de page de la fenêtre principale terminée

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *