Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A .NET MAUI közösségi eszközkészlet lehetővé teszi egy előugró ablak megjelenítését a felhasználó számára. Az eszközkészlet egy gyakori, összetettebb forgatókönyvet is lehetővé tesz, amelyben a fejlesztő megjelenít egy Popup
, és await
annak eredménye vissza lesz adva, amikor az Popup
el van utasítva. Ez az oldal bemutatja, hogyan használható az Popup<T>
osztály a kívánt viselkedés eléréséhez.
Előugró ablak létrehozása
A Popup<T>
következő módon hozható létre XAML-ben vagy C#-ban:
Előugró ablak létrehozása az XAML-ben
Az alábbi szakasz bemutatja, hogyan hozhat létre Popup<T>
XAML-t.
Az előugró ablak definiálása
A legegyszerűbb módja egy Popup<T>
létrehozásának az, ha hozzáad egy új .NET MAUI ContentView (XAML)
elemet a projekthez, ami két fájlt hoz létre: egy *.xaml fájlt és egy *.xaml.cs fájlt. Az egyes fájlok tartalma a következőre cserélhető:
XAML-fájl
<toolkit:Popup
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:system="clr-namespace:System;assembly=mscorlib"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Padding="10"
x:TypeArguments="system:Boolean"
x:Class="MyProject.ReturnResultPopup">
<VerticalStackLayout Spacing="6">
<Label Text="This is a very important message! Do you agree?" />
<Button Text="Yes"
Clicked="OnYesButtonClicked" />
<Button Text="No"
Clicked="OnNoButtonClicked" />
</VerticalStackLayout>
</toolkit:Popup>
Az XAML használata x:TypeArguments
lehetővé teszi egy általános típus típusparaméterének megadását.
XAML Code-Behind fájl
public partial class ReturnResultPopup : Popup<bool>
{
public ReturnResultPopup()
{
InitializeComponent();
}
async void OnYesButtonClicked(object? sender, EventArgs e)
{
await CloseAsync(true);
}
async void OnNoButtonClicked(object? sender, EventArgs e)
{
await CloseAsync(false);
}
}
A Popup<bool>
használatának meg kell egyeznie az XAML-ben lévő definícióval x:TypeArguments
használatával.
Fontos
Ha a háttérkód fájl nem jön létre a InitializeComponent
hívással együtt, akkor a rendszer kivételt dob, amikor megpróbálja megjeleníteni a Popup
-et.
Előugró ablak létrehozása C nyelven#
Az alábbi szakasz bemutatja, hogyan hozhat létre C#- Popup
ot.
using CommunityToolkit.Maui.Views;
namespace MyProject;
public class ReturnResultPopup : Popup<bool>
{
public ReturnResultPopup()
{
var yesButton = new Button { Text = "Yes" };
yesButton.Clicked += OnYesButtonClicked;
var noButton = new Button { Text = "No" };
noButton.Clicked += OnNoButtonClicked;
Content = new VerticalStackLayout
{
Children =
{
new Label { Text = "This is a very important message! Do you agree?" },
yesButton,
noButton
}
};
}
async void OnYesButtonClicked(object? sender, EventArgs e)
{
await CloseAsync(true);
}
async void OnNoButtonClicked(object? sender, EventArgs e)
{
await CloseAsync(false);
}
}
A CloseAsync
metódus lehetővé teszi egy érték megküldését, ez lesz az eredményül kapott visszatérési érték. A generikusok Popup<T>
használata típusbiztonságot biztosít egy előugró ablakból származó értékek visszaadásakor.
Várakozás az előugró ablakból származó eredményre
Az eredmény várásához a módszert az ShowPopupAsync
alábbiak szerint kell használni:
using CommunityToolkit.Maui.Views;
public class MyPage : ContentPage
{
public async Task DisplayPopup()
{
var popup = new ReturnResultPopup();
// The type parameter must match the type returned from the popup.
IPopupResult<bool> popupResult = await this.ShowPopupAsync<bool>(popup, PopupOptions.Empty, CancellationToken.None);
if (popupResult.WasDismissedByTappingOutsideOfPopup)
{
return;
}
if (popupResult.Result is true)
{
// Yes was tapped
}
else
{
// No was tapped
}
}
}
Megjegyzés:
Ha WasDismissedByTappingOutsideOfPopup
true
, akkor a Result
tulajdonság mindig null
vagy default
lesz.
Felugró ablakok
Az PopupOptions
osztály lehetővé teszi a megjelenített Popup
szegély, árnyék, PageOverlayColor stb. testreszabását.
További információért tekintse meg a PopupOptions dokumentációját .
Példák
Erre a funkcióra a .NET MAUI community toolkit mintaalkalmazásban talál példát.
API
A Popup
forráskódját a .NET MAUI Community Toolkit GitHub-adattártalálhatja meg.
További források
.NET MAUI Community Toolkit