You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET MAUI主页面点击按钮显示CommunityToolkit弹窗?

解决.NET MAUI中点击按钮显示CommunityToolkit弹窗的问题

你的错误在于自定义的PopupPage本身已经继承自toolkit:Popup,不需要再将它嵌套在toolkit:Popup标签中。正确的实现方式是通过代码后台(或MVVM命令)调用弹窗的显示方法,步骤如下:

1. 确认CommunityToolkit.Maui已正确初始化

在项目的MauiProgram.cs中,确保已添加初始化代码:

var builder = MauiApp.CreateBuilder();
builder
    .UseMauiApp<App>()
    // 添加CommunityToolkit初始化
    .UseMauiCommunityToolkit();

2. 在主页面添加触发按钮

修改MainPage.xaml,添加用于触发弹窗的按钮:

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Myproject.MainPage"
             xmlns:local="clr-namespace:Myproject">

    <VerticalStackLayout>
        <!-- 触发弹窗的按钮 -->
        <Button Text="显示弹窗" Clicked="OnShowPopupClicked" />
    </VerticalStackLayout>
</ContentPage>

3. 实现按钮点击事件的弹窗逻辑

在MainPage.xaml.cs中,添加按钮点击事件的处理代码,实例化自定义弹窗并调用ShowAsync方法:

namespace Myproject;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    private async void OnShowPopupClicked(object sender, EventArgs e)
    {
        // 实例化自定义弹窗
        var popup = new PopupPage();
        // 显示弹窗
        await this.ShowPopupAsync(popup);
    }
}

4. 确认PopupPage代码无需修改

你已创建的PopupPage.xaml代码是正确的,不需要做任何改动:

<toolkit:Popup xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Myproject.PopupPage"
             xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">
    <VerticalStackLayout>
        <Label 
            Text="Welcome to .NET MAUI!"
            VerticalOptions="Center" 
            HorizontalOptions="Center" />
    </VerticalStackLayout>
</toolkit:Popup>

这样点击按钮后就能正确显示你的自定义弹窗了。

内容的提问来源于stack exchange,提问作者blas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:27:18