Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Popups sind eine übliche Möglichkeit, einem Benutzer Informationen zu präsentieren, die sich auf die aktuelle Aufgabe beziehen. Betriebssysteme bieten eine Möglichkeit zum Anzeigen einer Nachricht und Anfordern einer Antwort des Benutzers. Diese Warnungen sind in der Regel in Bezug auf den Inhalt, den ein Entwickler bereitstellen kann, sowie das Layout und die Darstellung restriktiv.
Hinweis
Wenn Sie dem Benutzer Informationen etwas dezenter präsentieren möchten, schauen Sie sich unsere Toast- und Snackbar-Optionen an.
Mit der Ansicht Popup
können Entwickler ihre eigene benutzerdefinierte Benutzeroberfläche erstellen und ihren Benutzern präsentieren.
Das .NET MAUI Community Toolkit bietet zwei Ansätze, um ein Popup
zu erstellen, das in einer .NET MAUI-Anwendung angezeigt werden kann. Diese Ansätze hängen vom Anwendungsfall ab. Diese Seite konzentriert sich auf die einfachste Form von Popup
- einfaches Rendern einer Überlagerung in einer Anwendung. Für einen fortgeschritteneren Ansatz, der es ermöglicht, ein Ergebnis aus dem Popup
zurückzugeben, lesen Sie bitte Popup – Zurückgeben eines Ergebnisses.
Anzeigen eines Popups
Das .NET MAUI Community Toolkit bietet mehrere Ansätze zum Anzeigen eines Popup
in einer .NET MAUI-Anwendung.
- Rufen Sie in einer
ContentPage
diethis.ShowPopupAsync()
-Erweiterungsmethode auf, und übergeben Sie einView
zur Anzeige im Popup.- Anmerkung: Weitere Informationen zum Anpassen eines Popups finden Sie in der PopupOptions-Dokumentation.
- Aus dem
Popup
ein Ergebnis zurückgeben- Weitere Informationen finden Sie im Popup – Zurückgeben einer Ergebnisdokumentation.
- Verwenden des
PopupService
s- Weitere Informationen finden Sie in der PopupService-Dokumentation.
In der folgenden Dokumentation wird die einfachste Methode zum Anzeigen eines Popups mithilfe der .ShowPopupAsync()
Erweiterungsmethode veranschaulicht. Diese Methode gibt ein Task<IPopupResult>
zurück, das abgeschlossen wird, wenn das Popup geschlossen wird. Die bereitgestellten PopupOptions
sind optional.
public class MainPage : ContentPage
{
// ...
async void DisplayPopupButtonClicked(object? sender, EventArgs e)
{
await this.ShowPopupAsync(new Label
{
Text = "This is a very important message!"
}, new PopupOptions
{
CanBeDismissedByTappingOutsideOfPopup = false,
Shape = new RoundRectangle
{
CornerRadius = new CornerRadius(20, 20, 20, 20),
StrokeThickness = 2,
Stroke = Colors.LightGray
}
})
/**** Alternatively, Shell.Current can be used to display a Popup
await Shell.Current.ShowPopupAsync(new Label
{
Text = "This is a very important message!"
}, new PopupOptions
{
CanBeDismissedByTappingOutsideOfPopup = false,
Shape = new RoundRectangle
{
CornerRadius = new CornerRadius(20, 20, 20, 20),
StrokeThickness = 2,
Stroke = Colors.LightGray
}
})
****/
}
}
Alternativ kann ein Popup
in XAML oder C# erstellt und an ShowPopupAsync()
übergeben werden.
Erstellen eines Popups in XAML
Der einfachste Weg, um ein Popup
zu erstellen, besteht darin, ein neues .NET MAUI ContentView (XAML)
zu Ihrem Projekt hinzuzufügen. Dadurch werden zwei Dateien erstellt: eine *.xaml-Datei und eine *.xaml.cs-Datei .
Ersetzen Sie den Inhalt von *.xaml durch Folgendes:
<ContentView
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyProject.SimplePopup"
Padding="10">
<Label Text="This is a very important message!" />
</ContentView>
Die Standardwerte für HorizontalOptions
und VerticalOptions
führen dazu, dass Popup
in der Mitte der Seite angezeigt werden, die von ihm überlagert wird.
Es wird ein Popup mit einem Padding
-Standardwert von 15 angezeigt. Damit das SimplePopup
besser dargestellt wird, wurde ein Padding
von 10 hinzugefügt.
Präsentieren eines in XAML erstellten Popups
Nachdem die Popup
in XAML erstellt wurde, kann sie dann durch die Verwendung der Popup
-Erweiterungsmethoden präsentiert werden, die auf einem Page
, Shell
oder einem INavigation
verwendet werden, oder durch die IPopupService
-Implementierung aus diesem Toolkit.
Das folgende Beispiel zeigt, wie das im vorherigen Beispiel erstellte SimplePopup
-Objekt mithilfe einer Erweiterungsmethode auf einem ContentPage
instanziiert und angezeigt wird.
using CommunityToolkit.Maui.Views;
public class MyPage : ContentPage
{
public async Task DisplayPopup(CancellationToken token)
{
var popup = new SimplePopup();
await this.ShowPopupAsync(popup, PopupOptions.Empty, token);
}
}
Schließen eines Popups
Es gibt zwei verschiedene Möglichkeiten, wie eine Popup
geschlossen werden kann:
- Ein Popup kann programmgesteuert geschlossen werden
- Ein Popup kann geschlossen werden, wenn ein Benutzer außerhalb des Popups tippt.
- Anmerkung Um zu verhindern, dass ein Popup geschlossen wird, wenn ein Benutzer außerhalb des Popups tippt, legen Sie ihn
PopupOptions.CanBeDismissedByTappingOutsideOfPopup
auffalse
- Anmerkung Um zu verhindern, dass ein Popup geschlossen wird, wenn ein Benutzer außerhalb des Popups tippt, legen Sie ihn
1. Programmgesteuertes Schließen eines Popups
Es gibt drei Optionen, ein Popup
programmgesteuert zu schließen.
- Verwenden Sie in einer
ContentPage
diethis.ClosePopupAsync()
-Erweiterungsmethode. - Verwenden Sie die Erweiterungsmethode
Shell
in einer App, dieShell.Current.ClosePopupAsync()
verwendet. - Verwenden Sie das
PopupService
- Weitere Informationen finden Sie in der PopupService-Dokumentation.
Im unteren Beispiel zeigen wir, wie this.ClosePopupAsync()
in einem ContentPage
verwendet wird. Informationen zum PopupService
Schließen eines Popups finden Sie in der PopupService-Dokumentation.
using CommunityToolkit.Maui.Views;
public class MyPage : ContentPage
{
public async Task DisplayAutomaticallyClosingPopup(Timespan displayTimeSpan, CancellationToken token)
{
var popup = new SimplePopup();
// This Popup is closed programmatically after 2 seconds
this.ShowPopup(popup, new PopupOptions
{
CanBeDismissedByTappingOutsideOfPopup = false
});
await Task.Delay(TimeSpan.FromSeconds(displayTimeSpan), token);
await this.ClosePopupAsync(token);
/**** Alternatively, Shell.Current can be used to close a Popup
Shell.Current.ShowPopup(popup, new PopupOptions
{
CanBeDismissedByTappingOutsideOfPopup = false
});
await Task.Delay(TimeSpan.FromSeconds(displayTimeSpan), token);
await Shell.Current.ClosePopupAsync(token);
***/
}
}
2. Tippen außerhalb des Popups
Standardmäßig kann ein Benutzer außerhalb des Popup
tippen, um es zu schließen. Dies kann über die Verwendung der PopupOptions.CanBeDismissedByTappingOutsideOfPopup
-Eigenschaft gesteuert werden. Wenn Sie diese Eigenschaft auf false
festlegen, wird verhindert, dass ein Benutzer das Popup
schließen kann, indem er außerhalb des Objekts tippt. Weitere Informationen finden Sie unter "PopupOptions ".
PopupOptions
Die PageOverlayColor
, Shape
und Shadow
können alle für Popup angepasst werden. Weitere Informationen finden Sie unter "PopupOptions ".
Festlegen von Popupstandardeinstellungen
Um die Standardwerte für jedes Popup
in Ihrer Anwendung außer Kraft zu setzen, können Sie .SetPopupDefaults()
und .SetPopupOptionsDefaults()
bei der Initialisierung des .NET MAUI Community Toolkit aufrufen.
Die bereitgestellte DefaultPopupSettings
wird als Standardwert für jede Popup
in Ihrer App angewendet, und DefaultPopupOptionsSettings
wird als Standardwert für PopupOptions
angewendet, wenn .ShowPopup()
aufgerufen wird.
.UseMauiCommunityToolkit(static options =>
{
options.SetPopupDefaults(new DefaultPopupSettings
{
CanBeDismissedByTappingOutsideOfPopup = true,
BackgroundColor = Colors.Orange,
HorizontalOptions = LayoutOptions.End,
VerticalOptions = LayoutOptions.Start,
Margin = 72,
Padding = 4
});
options.SetPopupOptionsDefaults(new DefaultPopupOptionsSettings
{
CanBeDismissedByTappingOutsideOfPopup = true,
OnTappingOutsideOfPopup = async () => await Toast.Make("Popup Dismissed").Show(CancellationToken.None),
PageOverlayColor = Colors.Orange,
Shadow = null,
Shape = null
});
})
Ereignisse
Die Popup
Klasse stellt die folgenden Ereignisse bereit, die abonniert werden können.
Ereignis | Beschreibung |
---|---|
Closed |
Tritt ein, wenn das Popup geschlossen wird. |
Opened |
Tritt ein, wenn das Popup geöffnet wird. |
Beispiele
Sie finden ein Beispiel für dieses Feature in Aktion in der Beispielanwendung für das .NET MAUI Community Toolkit.
Programmierschnittstelle (API)
Sie finden den Quellcode für Popup
über das GitHub-Repository für das .NET MAUI Community Toolkit.
Zusätzliche Ressourcen
.NET MAUI Community Toolkit