WinUI 3 C++ Steuerelemente Handbuch – Schwebende Popup-Fenster (Popup-Benachrichtigungen)

Zuerst demonstrieren wir das Popup-Steuerelement

Fügen Sie in XAML einen Button hinzu, der bei Klick das Popup öffnet. Definieren Sie zudem ein Popup, das standardmäßig ausgeblendet ist und erst nach dem Klick auf den Button angezeigt wird.

    <StackPanel Spacing="24" VerticalAlignment="Top">

        <!-- Basis-Popup-Stammcontainer -->
        <Popup x:Name="MainPopup" Width="320" Height="180">
            <Border Background="White" BorderBrush="Gray" BorderThickness="1" CornerRadius="8" Padding="16">
                <StackPanel Spacing="12">
                    <TextBlock Text="Benutzerdefinierter Popup-Inhalt" FontSize="18"/>
                    <TextBlock Text="Dies ist der native Basis-Popup-Container"/>
                    <Button Content="Popup schließen" Click="BtnClosePopup_Click"/>
                </StackPanel>
            </Border>
        </Popup>

        <Button Content="Basis-Popup-Container öffnen" Click="BtnOpenPopup_Click" HorizontalAlignment="Left"
        ToolTipService.ToolTip="Native Basis-Popup-Ebene öffnen"/>

    </StackPanel>Code-Sprache: HTML, XML (xml)

Erstellen Sie anschließend das Klick-Ereignis BtnOpenPopup_Click, in dem das Popup angezeigt wird. Das Tag <Popup x:Name="MainPopup" Width="320" Height="180"> ...</Popup> erstellt ein schwebendes Fenster, das standardmäßig geschlossen ist. Darin befindet sich ein Button <Button Content="Popup schließen" Click="BtnClosePopup_Click"/>, der beim Klicken das zugehörige Popup schließt.

Drücken Sie F12, um die beiden Button-Ereignismethoden automatisch zu generieren

.H Header-Datei

#pragma once

#include "MainWindow.g.h"

namespace winrt::AppWinui::implementation
{
    struct MainWindow : MainWindowT<MainWindow>
    {
    public:
        MainWindow();

        int32_t MyProperty();
        void MyProperty(int32_t value);

        void BtnOpenPopup_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e);
        void BtnClosePopup_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e);
    };
}

namespace winrt::AppWinui::factory_implementation
{
    struct MainWindow : MainWindowT<MainWindow, implementation::MainWindow>
    {
    };
}
Code-Sprache: C++ (cpp)
#include "pch.h"
#include "MainWindow.xaml.h"
#if __has_include("MainWindow.g.cpp")
#include "MainWindow.g.cpp"
#endif

#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Globalization.h>

#include <winrt/Windows.UI.h> //Windows::UI::Colors


// Globale Namespace-Aliase zur Behebung von Fehlern bei fehlenden Klassen und undefiniertem RoutedEventArgs
using namespace winrt;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Microsoft::UI::Xaml;
using namespace Microsoft::UI::Xaml::Controls;
using namespace Microsoft::UI::Xaml::Controls::Primitives;


// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.

namespace winrt::AppWinui::implementation
{
    int32_t MainWindow::MyProperty()
    {
        throw hresult_not_implemented();
    }

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

    MainWindow::MainWindow()
    {
        InitializeComponent();
    }
}


void winrt::AppWinui::implementation::MainWindow::BtnOpenPopup_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e)
{
    MainPopup().IsOpen(true);
}

void winrt::AppWinui::implementation::MainWindow::BtnClosePopup_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e)
{
    MainPopup().IsOpen(false);
}
Code-Sprache: C++ (cpp)

WinUI 3 C++ Steuerelemente Handbuch – Schwebende Popup-Fenster (Popup-Benachrichtigungen)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert