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

Community Toolkit Maui Popup含Entry控件时点击外部崩溃求助

解决方案

方案1:关闭弹窗前手动移除Entry焦点

这类崩溃通常是弹窗关闭时Entry的焦点未正确释放导致的,可在弹窗关闭前主动让Entry失去焦点:

// 在自定义Popup类中重写OnClosing方法
protected override void OnClosing(CommunityToolkit.Maui.Views.PopupClosingEventArgs e)
{
    // 假设弹窗内的Entry控件名为MyEntry
    MyEntry?.Unfocus();
    base.OnClosing(e);
}

或者在触发弹窗关闭的外部逻辑中先处理焦点:

var targetPopup = (你的自定义Popup类型)CurrentPage.Popup;
targetPopup.MyEntry?.Unfocus();
await CurrentPage.ClosePopupAsync();

方案2:禁用外部点击关闭,改用按钮手动关闭

如果业务允许,可以关闭弹窗的外部点击关闭功能,改用自定义按钮触发关闭:

<!-- 在Popup的XAML中设置 -->
<toolkit:Popup IsLightDismissEnabled="False">
    <!-- 弹窗内容,包含Entry控件 -->
    <Button Text="关闭弹窗" Clicked="CloseBtn_Clicked"/>
</toolkit:Popup>

然后实现按钮点击事件:

private async void CloseBtn_Clicked(object sender, EventArgs e)
{
    await this.CloseAsync();
}

方案3:升级Community Toolkit Maui版本

该问题可能是工具包的已知焦点处理bug,尝试升级到最新稳定版本,此类问题在新版本中大概率已被修复。可通过项目的NuGet包管理器搜索CommunityToolkit.Maui并更新至最新版。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:27:33