.NET MAUI中如何关闭模态页面?
MAUI 模态页面关闭的标准实现方法
在.NET MAUI中,关闭模态页面的标准方式是调用Navigation.PopModalAsync()方法,以下是针对你的代码的完整修改方案:
1. 绑定按钮点击事件
先修改ModalPage.xaml中的按钮代码,给两个按钮添加Clicked事件绑定,关联到后台的处理方法:
<Grid WidthRequest="600" > <Grid.RowDefinitions> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Button Text="Cancel" Clicked="CancelButton_OnClicked"/> <Button Grid.Column="1" Text="Submit" Clicked="SubmitButton_OnClicked"/> </Grid>
2. 实现关闭逻辑
修改ModalPage的后台代码,在点击事件中调用异步的PopModalAsync()方法完成页面关闭。如果是提交按钮,可先处理表单数据再关闭:
public partial class ModalPage : ContentPage { public ModalPage() { InitializeComponent(); } private async void CancelButton_OnClicked(object sender, EventArgs e) { // 直接关闭,不保存数据 await Navigation.PopModalAsync(); } private async void SubmitButton_OnClicked(object sender, EventArgs e) { // 先处理表单数据(示例:获取输入框值) // var input1 = entry1.Text; // ... 数据验证、保存逻辑 // 处理完成后关闭模态页面 await Navigation.PopModalAsync(); } }
关键说明
PopModalAsync()是MAUI导航系统专门用于关闭模态页面的方法,会自动返回至之前的页面- 由于是异步方法,必须搭配
await关键字调用,因此按钮点击事件方法需声明为async void - 如果需要向原页面传递数据,可通过委托、事件或ViewModel的方式实现(比如定义回调方法在关闭前触发)
内容的提问来源于stack exchange,提问作者Frank Mehlhop
相关产品推荐
相关产品推荐

