Panduan Kontrol WinUI 3 C++ — Jendela Popup Melayang (Pemberitahuan Popup)

Pertama kita demo Popup

Di XAML, tambahkan tombol yang akan membuka Popup saat diklik. Kita juga buat elemen Popup yang tersembunyi secara bawaan, hanya akan muncul setelah tombol ditekan.

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

        <!-- Kontainer induk Popup dasar -->
        <Popup x:Name="MainPopup" Width="320" Height="180">
            <Border Background="White" BorderBrush="Gray" BorderThickness="1" CornerRadius="8" Padding="16">
                <StackPanel Spacing="12">
                    <TextBlock Text="Isi Popup Kustom" FontSize="18"/>
                    <TextBlock Text="Ini adalah kontainer dasar Popup mentah"/>
                    <Button Content="Tutup Popup" Click="BtnClosePopup_Click"/>
                </StackPanel>
            </Border>
        </Popup>

        <Button Content="Buka Kontainer Popup Dasar" Click="BtnOpenPopup_Click" HorizontalAlignment="Left"
        ToolTipService.ToolTip="Buka lapisan popup dasar mentah"/>

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

Kemudian buat event klik BtnOpenPopup_Click yang berfungsi menampilkan Popup. Tag <Popup x:Name="MainPopup" Width="320" Height="180"> ...</Popup> berfungsi membuat jendela melayang yang tertutup secara bawaan. Di dalamnya terdapat tombol <Button Content="Tutup Popup" Click="BtnClosePopup_Click"/> yang akan menutup Popup induknya saat diklik.

Tekan F12 untuk menghasilkan dua fungsi event tombol secara otomatis

File .H (Header)

#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 language: 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


// Alias namespace global untuk mengatasi error kelas tidak ditemukan dan RoutedEventArgs tidak terdefinisi
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 language: C++ (cpp)

Panduan Kontrol WinUI 3 C++ — Jendela Popup Melayang (Pemberitahuan Popup)

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *