更新Shell扩展,新增弹窗功能。https://www.cnblogs.com/dalgleish/p/18920441
BasicDialogBox.xaml代码,简单一个按钮,用于弹出对话框。
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:tk="http://schemas.microsoft.com/dotnet/2022/maui/toolkit" x:Class="MauiViews.MauiDemos.Book._03.BasicDialogBox" Title="BasicDialogBox" HeightRequest="300" WidthRequest="300" MinimumHeightRequest="150" MinimumWidthRequest="200"> <Button Text="Click Me" Clicked="Button_Clicked" Margin="0,10"/> </ContentPage>
对应的cs代码
using CommunityToolkit.Maui;
using CommunityToolkit.Maui.Extensions;
using Shares;
namespace MauiViews.MauiDemos.Book._03;
public partial class BasicDialogBox : ContentPage
{
public BasicDialogBox()
{
InitializeComponent();
}
private void Button_Clicked(object sender, EventArgs e)
{
Shell.Current.Popup("MauiViews.MauiDemos.Book._03.Dialog", true);
}
}
大家已经注意到了,这个需要弹出一个叫Dialog的窗口。建立一个ContentView的Dialog。xaml代码如下。
<?xml version="1.0" encoding="utf-8" ?> <ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:tk="http://schemas.microsoft.com/dotnet/2022/maui/toolkit" x:Class="MauiViews.MauiDemos.Book._03.Dialog" HeightRequest="300" WidthRequest="300" MinimumHeightRequest="150" MinimumWidthRequest="200"> <tk:DockLayout> <Label tk:DockLayout.DockPosition="Top" Text="This is a Test"/> <StackLayout tk:DockLayout.DockPosition="Bottom" Orientation="Horizontal" HorizontalOptions="End" VerticalOptions="End"> <Button Text="OK" Margin="10,10,2,10" Padding="3,3,3,3"/> <Button Text="Cancel" Margin="10,10,2,10" Padding="3,3,3,3" Clicked="Button_Clicked"/> </StackLayout> </tk:DockLayout> </ContentView>
对应的cs代码
using Shares;
namespace MauiViews.MauiDemos.Book._03;
public partial class Dialog : ContentView
{
public Dialog()
{
InitializeComponent();
}
private void Button_Clicked(object sender, EventArgs e)
{
Shell.Current.ClosePopup();
}
}
运行效果


至于ContentView的内容,大家可以根据自己实力发挥内容了。
浙公网安备 33010602011771号