Wyświetlanie wyskakujących okienek

Download Sample Pobieranie przykładu

Wyświetlanie alertu, monitowanie użytkownika o dokonanie wyboru lub wyświetlenie monitu jest typowym zadaniem interfejsu użytkownika. Xamarin.Forms Ma trzy metody w Page klasie do interakcji z użytkownikiem za pomocą wyskakującego okienka: DisplayAlert, DisplayActionSheeti DisplayPromptAsync. Są one renderowane przy użyciu odpowiednich kontrolek natywnych na każdej platformie.

Wyświetlanie alertu

Wszystkie Xamarin.Forms-obsługiwane platformy mają modalne wyskakujące okienko, aby powiadomić użytkownika lub zadać im proste pytania. Aby wyświetlić te alerty w programie Xamarin.Forms, użyj DisplayAlert metody w dowolnej Pagemetodzie . Poniższy wiersz kodu przedstawia użytkownikowi prosty komunikat:

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

Alert dialog with one button, on iOS and Android

Ten przykład nie zbiera informacji od użytkownika. Alert jest wyświetlany modalnie i po odrzuceniu użytkownik będzie nadal wchodzić w interakcję z aplikacją.

Metoda DisplayAlert może również służyć do przechwytywania odpowiedzi użytkownika przez przedstawienie dwóch przycisków i zwrócenie wartości boolean. Aby uzyskać odpowiedź z alertu, podaj tekst dla przycisków i await metody . Gdy użytkownik wybierze jedną z opcji, odpowiedź zostanie zwrócona do kodu. Zanotuj słowa async kluczowe i await w poniższym przykładowym kodzie:

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);
}

Alert dialog with two buttons

Metoda DisplayAlert ma również przeciążenia, które akceptują FlowDirection argument określający kierunek przepływu elementów interfejsu użytkownika w ramach alertu. Aby uzyskać więcej informacji na temat kierunku przepływu, zobacz Lokalizacja od prawej do lewej.

Ostrzeżenie

Domyślnie w systemie UWP po wyświetleniu alertu wszystkie klucze dostępu zdefiniowane na stronie za alertem mogą być nadal aktywowane. Aby uzyskać więcej informacji, zobacz VisualElement Access Keys on Windows (Klucze dostępu VisualElement w systemie Windows).

Przewodnik użytkowników za pomocą zadań

UIActionSheet jest typowym elementem interfejsu użytkownika w systemie iOS. Metoda Xamarin.FormsDisplayActionSheet umożliwia uwzględnienie tej kontrolki w aplikacjach dla wielu platform, renderowanie natywnych alternatyw w systemach Android i UWP.

Aby wyświetlić arkusz akcji, awaitDisplayActionSheet w dowolnym Pagepliku przekazuje etykiety komunikatów i przycisków jako ciągi. Metoda zwraca etykietę ciągu przycisku klikniętego przez użytkownika. Poniżej przedstawiono prosty przykład:

async void OnActionSheetSimpleClicked (object sender, EventArgs e)
{
  string action = await DisplayActionSheet ("ActionSheet: Send to?", "Cancel", null, "Email", "Twitter", "Facebook");
  Debug.WriteLine ("Action: " + action);
}

ActionSheet dialog, on iOS and Android

Przycisk destroy jest renderowany inaczej niż inne przyciski w systemie iOS i może być pozostawiony null lub określony jako trzeci parametr ciągu. W poniższym przykładzie użyto destroy przycisku :

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

ActionSheet dialog with destroy button, on iOS and Android

Metoda DisplayActionSheet ma również przeciążenie, które akceptuje FlowDirection argument określający kierunek przepływu elementów interfejsu użytkownika w arkuszu akcji. Aby uzyskać więcej informacji na temat kierunku przepływu, zobacz Lokalizacja od prawej do lewej.

Wyświetlanie monitu

Aby wyświetlić monit, wywołaj element DisplayPromptAsync w dowolnym Pagepliku , przekazując tytuł i komunikat jako string argumenty:

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

Monit jest wyświetlany modalnie:

Screenshot of a modal prompt, on iOS and Android

Jeśli przycisk OK zostanie naciśnięty, wprowadzona odpowiedź zostanie zwrócona jako string. Jeśli przycisk Anuluj zostanie naciśnięty, null zostanie zwrócony.

Pełna lista argumentów dla DisplayPromptAsync metody to:

  • title, typu string, to tytuł do wyświetlenia w wierszu polecenia.
  • message, typu string, to komunikat wyświetlany w wierszu polecenia.
  • accept, typu string, to tekst przycisku akceptowania. Jest to opcjonalny argument, którego wartość domyślna to OK.
  • cancel, typu string, to tekst przycisku anulowania. Jest to opcjonalny argument, którego wartość domyślna to Anuluj.
  • placeholder, typu string, jest tekstem zastępczym wyświetlanym w wierszu polecenia. Jest to opcjonalny argument, którego wartością domyślną jest null.
  • maxLength, typu int, jest maksymalną długością odpowiedzi użytkownika. Jest to opcjonalny argument, którego wartość domyślna to -1.
  • keyboard, typu , to typ Keyboardklawiatury, który ma być używany dla odpowiedzi użytkownika. Jest to opcjonalny argument, którego wartością domyślną jest Keyboard.Default.
  • initialValue, typu string, to wstępnie zdefiniowana odpowiedź, która będzie wyświetlana i którą można edytować. Jest to opcjonalny argument, którego wartość domyślna jest pusta string.

W poniższym przykładzie pokazano ustawienie niektórych opcjonalnych argumentów:

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

Ten kod wyświetla wstępnie zdefiniowaną odpowiedź 10, ogranicza liczbę znaków, które mogą być wprowadzane do 2, i wyświetla klawiaturę liczbową dla danych wejściowych użytkownika:

Screenshot of an optional modal prompt, on iOS and Android

Ostrzeżenie

Domyślnie w systemie UWP po wyświetleniu monitu wszystkie klucze dostępu zdefiniowane na stronie monitu mogą być nadal aktywowane. Aby uzyskać więcej informacji, zobacz VisualElement Access Keys on Windows (Klucze dostępu VisualElement w systemie Windows).