Freigeben über


Anzeigen von Popupelementen

Das Anzeigen einer Benachrichtigung, das Anfordern einer Auswahl durch einen Benutzer oder das Anzeigen einer Eingabeaufforderung ist eine häufige UI-Aufgabe. .NET Multi-Platform App UI (.NET MAUI) verfügt über drei Methoden für die Klasse für die Page Interaktion mit dem Benutzer über ein Popup: DisplayAlert, , DisplayActionSheetund DisplayPromptAsync. Popups werden mit systemeigenen Steuerelementen auf jeder Plattform gerendert.

Anzeigen einer Warnung

Alle .NET MAUI-unterstützten Plattformen verfügen über ein Popup, um den Benutzer zu benachrichtigen oder einfache Fragen zu stellen. Verwenden Sie zum Anzeigen von Warnungen die DisplayAlert Methode für beliebige Page. Das folgende Beispiel zeigt dem Benutzer eine einfache Nachricht:

await DisplayAlert("Alert", "You have been alerted", "OK");

Screenshot of an alert dialog with one button.

Sobald die Warnung geschlossen wurde, interagiert der Benutzer weiterhin mit der App.

Hinweis

Unter Android können Warnungen geschlossen werden, indem sie auf die Seite außerhalb der Warnung tippen. Auf Desktopplattformen können Warnungen mit der Escapetaste geschlossen werden.

Mithilfe der DisplayAlert-Methode kann die Antwort des Benutzers erfasst werden, indem zwei Schaltflächen angezeigt werden und ein bool-Wert zurückgegeben wird. Um eine Antwort von einer Warnung zu erhalten, geben Sie Text für beide Schaltflächen und await die Methode an:

bool answer = await DisplayAlert("Question?", "Would you like to play a game", "Yes", "No");
Debug.WriteLine("Answer: " + answer);

Screenshot of an alert dialog with two buttons.

Nachdem der Benutzer eine der Optionen auswählt, wird die Antwort als eine boolzurückgegeben.

Die DisplayAlert Methode verfügt auch über Überladungen, die ein FlowDirection Argument akzeptieren, das die Richtung angibt, in der UI-Elemente innerhalb der Warnung fließen. Weitere Informationen zur Flussrichtung finden Sie unter Lokalisierung von rechts nach links.

Warnung

Wenn eine Warnung unter Windows standardmäßig angezeigt wird, können alle Zugriffstasten, die auf der Seite hinter der Warnung definiert sind, weiterhin aktiviert werden. Weitere Informationen finden Sie unter VisualElement-Zugriffstasten unter Windows.

Benutzer durch Aufgaben führen

Ein Aktionsblatt zeigt dem Benutzer eine Reihe von Alternativen für den Vorgangsvorgang an. Um ein Aktionsblatt anzuzeigen, verwenden Sie die DisplayActionSheet Methode für beliebige PageElemente , wobei die Nachrichten- und Schaltflächenbeschriftungen als Zeichenfolgen übergeben werden:

string action = await DisplayActionSheet("ActionSheet: Send to?", "Cancel", null, "Email", "Twitter", "Facebook");
Debug.WriteLine("Action: " + action);

Screenshot of an action sheet dialog.

Nachdem der Benutzer auf eine der Schaltflächen tippt, wird die Schaltflächenbezeichnung als eine stringder Schaltflächen zurückgegeben.

Hinweis

Aktionsblätter können auf Touchplattformen und Mac Catalyst geschlossen werden, indem sie auf die Seite außerhalb des Aktionsblatts tippen. Unter Windows können Aktionsblätter mit der Escapetaste geschlossen und durch Klicken auf die Seite außerhalb des Aktionsblatts geklickt werden.

Aktionsblätter unterstützen auch eine zerstörte Schaltfläche, bei der es sich um eine Schaltfläche handelt, die das destruktive Verhalten darstellt. Die Schaltfläche "Zerstören" kann als drittes Zeichenfolgenargument für die DisplayActionSheet Methode angegeben oder links sein null. Im folgenden Beispiel wird eine Schaltfläche zum Zerstören angegeben:

async void OnActionSheetCancelDeleteClicked(object sender, EventArgs e)
{
  string action = await DisplayActionSheet("ActionSheet: SavePhoto?", "Cancel", "Delete", "Photo Roll", "Email");
  Debug.WriteLine("Action: " + action);
}

Screenshot of an action sheet with a destroy button.

Hinweis

Unter iOS wird die Schaltfläche "Zerstören" anders als die anderen Schaltflächen im Aktionsblatt gerendert.

Die DisplayActionSheet Methode verfügt auch über eine Überladung, die ein FlowDirection Argument akzeptiert, das die Richtung angibt, in der UI-Elemente innerhalb des Aktionsblatts fließen. Weitere Informationen zur Flussrichtung finden Sie unter Lokalisierung von rechts nach links.

Anzeigen einer Eingabeaufforderung

Um eine Eingabeaufforderung anzuzeigen, rufen Sie die DisplayPromptAsync ein, Pageund übergeben Sie einen Titel und eine Nachricht als string Argumente:

string result = await DisplayPromptAsync("Question 1", "What's your name?");

Screenshot of a prompt.

Wenn auf die Schaltfläche "OK" getippt wird, wird die eingegebene Antwort als eine stringzurückgegeben. Wenn auf die Schaltfläche "Abbrechen" getippt wird, null wird sie zurückgegeben.

Hinweis

Auf Android können Eingabeaufforderungen geschlossen werden, indem sie auf die Seite außerhalb der Warnung tippen. Auf Desktopplattformen können Aufforderungen mit der Escapetaste geschlossen werden.

Die vollständige Argumentliste für die DisplayPromptAsync Methode lautet:

  • title, vom Typ string, ist der Titel, der in der Eingabeaufforderung angezeigt werden soll.
  • message, vom Typ string, ist die Meldung, die in der Eingabeaufforderung angezeigt werden soll.
  • accept, vom Typ string, ist der Text für die Schaltfläche "Annehmen". Dies ist ein optionales Argument, dessen Standardwert OK ist.
  • cancel, vom Typ string, ist der Text für die Schaltfläche "Abbrechen". Dies ist ein optionales Argument, dessen Standardwert "Cancel" lautet.
  • placeholder, vom Typ string, ist der Platzhaltertext, der in der Eingabeaufforderung angezeigt werden soll. Dies ist ein optionales Argument, dessen Standardwert lautet null.
  • maxLength, vom Typ int, ist die maximale Länge der Benutzerantwort. Dies ist ein optionales Argument, dessen Standardwert -1 ist.
  • keyboardist der KeyboardTastaturtyp, der für die Benutzerantwort verwendet werden soll. Dies ist ein optionales Argument, dessen Standardwert lautet Keyboard.Default.
  • initialValue, vom Typ string, ist eine vordefinierte Antwort, die angezeigt wird und die bearbeitet werden kann. Dies ist ein optionales Argument, dessen Standardwert ein leerer stringWert ist.

Das folgende Beispiel zeigt das Festlegen einiger optionaler Argumente:

string result = await DisplayPromptAsync("Question 2", "What's 5 + 5?", initialValue: "10", maxLength: 2, keyboard: Keyboard.Numeric);

Dieser Code zeigt eine vordefinierte Antwort von 10 an, begrenzt die Anzahl der Zeichen, die auf 2 eingegeben werden können, und zeigt die numerische Tastatur für die Benutzereingabe an:

Screenshot of an optional prompt.

Warnung

Wenn eine Eingabeaufforderung standardmäßig auf der Seite hinter der Eingabeaufforderung angezeigt wird, können weiterhin Zugriffstasten aktiviert werden, die auf der Seite hinter der Eingabeaufforderung definiert sind. Weitere Informationen finden Sie unter VisualElement-Zugriffstasten unter Windows.

Anzeigen einer Seite als Popup

.NET MAUI unterstützt modale Seitennavigation. Eine modale Seite empfiehlt Benutzern, eine eigenständige Aufgabe abzuschließen, die erst nach Abschluss oder Abbruch der Aufgabe navigiert werden kann. Um z. B. ein Formular als Popup anzuzeigen, für das Benutzer mehrere Datenelemente eingeben müssen, erstellen Sie eine ContentPage Benutzeroberfläche für Ihr Formular, und verschieben Sie es dann als modale Seite auf den Navigationsstapel. Weitere Informationen finden Sie unter Modale Navigation durchführen.