Anzeigen von Popupelementen
Das Anzeigen einer Warnung, die Aufforderung zum Treffen einer Auswahl oder das Anzeigen einer Eingabeaufforderung ist eine häufige Aufgabe der Benutzeroberfläche. Xamarin.Forms verfügt über drei Methoden für die Page
-Klasse für die Interaktion mit dem Benutzer über ein Popup: DisplayAlert
, DisplayActionSheet
und DisplayPromptAsync
. Sie werden auf jeder Plattform mit entsprechenden nativen Steuerelementen gerendert.
Anzeigen einer Warnung
Alle Xamarin.Formsunterstützten Plattformen verfügen über ein modales Popup, um den Benutzer zu benachrichtigen oder einfache Fragen zu stellen. Um diese Warnungen in Xamarin.Formsanzuzeigen, verwenden Sie die DisplayAlert
-Methode für alle Page
. Mit der folgenden Codezeile wird dem Benutzer eine einfache Meldung angezeigt:
await DisplayAlert ("Alert", "You have been alerted", "OK");
In diesem Beispiel werden keine Informationen des Benutzers erfasst. Die Warnung wird modal angezeigt und geschlossen, sobald der Benutzer erneut mit der Anwendung interagiert.
Mithilfe der DisplayAlert
-Methode kann die Antwort des Benutzers erfasst werden, indem zwei Schaltflächen angezeigt werden und ein boolean
-Wert zurückgegeben wird. Geben Sie Text für beide Schaltflächen und await
für die Methode an, um eine Antwort von einer Warnung zu erhalten. Wenn der Benutzer eine der Optionen auswählt, wird die Antwort an Ihren Code zurückgegeben. Beachten Sie die Schlüsselwörter async
und await
im folgenden Beispielcode:
async void OnAlertYesNoClicked (object sender, EventArgs e)
{
bool answer = await DisplayAlert ("Question?", "Would you like to play a game", "Yes", "No");
Debug.WriteLine ("Answer: " + answer);
}
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
Standardmäßig können auf UWP, wenn eine Warnung angezeigt wird, weiterhin alle Zugriffsschlüssel aktiviert werden, die auf der Seite hinter der Warnung definiert sind. Weitere Informationen finden Sie unter VisualElement-Zugriffsschlüssel unter Windows.
Benutzer durch Aufgaben führen
UIActionSheet ist ein allgemeines Benutzeroberflächenelement unter iOS. Mit Xamarin.FormsDisplayActionSheet
der -Methode können Sie dieses Steuerelement in plattformübergreifende Apps einschließen und native Alternativen in Android und UWP rendern.
Mit await
DisplayActionSheet
in einem beliebigen Page
-Element werden die Bezeichnungen für die Nachricht und die Schaltfläche als Zeichenfolge übergeben, um ein Aktionsblatt anzuzeigen. Die Methode gibt die Bezeichnung der Zeichenfolge für die Schaltfläche zurück, auf die der Benutzer getippt hat. Hier ist ein einfaches Beispiel:
async void OnActionSheetSimpleClicked (object sender, EventArgs e)
{
string action = await DisplayActionSheet ("ActionSheet: Send to?", "Cancel", null, "Email", "Twitter", "Facebook");
Debug.WriteLine ("Action: " + action);
}
Die destroy
Schaltfläche wird anders als die anderen Schaltflächen unter iOS gerendert und kann als dritter Zeichenfolgenparameter belassen null
oder angegeben werden. Im folgenden Beispiel wird die destroy
-Schaltfläche verwendet:
async void OnActionSheetCancelDeleteClicked (object sender, EventArgs e)
{
string action = await DisplayActionSheet ("ActionSheet: SavePhoto?", "Cancel", "Delete", "Photo Roll", "Email");
Debug.WriteLine ("Action: " + action);
}
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 in DisplayPromptAsync
beliebiger Page
auf, und übergeben Sie einen Titel und eine Nachricht als string
Argumente:
string result = await DisplayPromptAsync("Question 1", "What's your name?");
Die Eingabeaufforderung wird modal angezeigt:
Wenn auf die Schaltfläche OK getippt wird, wird die eingegebene Antwort als string
zurückgegeben. Wenn auf die Schaltfläche Abbrechen getippt wird, null
wird zurückgegeben.
Die vollständige Argumentliste für die DisplayPromptAsync
-Methode lautet:
title
vom Typstring
ist der Titel, der in der Eingabeaufforderung angezeigt werden soll.message
vom Typstring
ist die Meldung, die in der Eingabeaufforderung angezeigt werden soll.accept
vom Typstring
ist der Text für die Schaltfläche akzeptieren. Dies ist ein optionales Argument, dessen Standardwert OK ist.cancel
vom Typstring
ist der Text für die Abbrechen-Schaltfläche. Dies ist ein optionales Argument, dessen Standardwert Cancel ist.placeholder
vom Typstring
ist der Platzhaltertext, der in der Eingabeaufforderung angezeigt werden soll. Dies ist ein optionales Argument, dessen Standardwert istnull
.maxLength
vom Typint
ist die maximale Länge der Benutzerantwort. Dies ist ein optionales Argument, dessen Standardwert -1 ist.keyboard
vom TypKeyboard
ist der Tastaturtyp, der für die Benutzerantwort verwendet werden soll. Dies ist ein optionales Argument, dessen Standardwert istKeyboard.Default
.initialValue
vom Typstring
ist eine vordefinierte Antwort, die angezeigt wird und bearbeitet werden kann. Dies ist ein optionales Argument, dessen Standardwert ein leererstring
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 eingegeben werden können, auf 2 und zeigt die numerische Tastatur für Benutzereingaben an:
Warnung
Standardmäßig können auf UWP, wenn eine Eingabeaufforderung angezeigt wird, alle Zugriffsschlüssel aktiviert werden, die auf der Seite hinter der Eingabeaufforderung definiert sind. Weitere Informationen finden Sie unter VisualElement-Zugriffsschlüssel unter Windows.