Udostępnij za pośrednictwem


Wyświetlanie wyskakujących okienek

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

Okno dialogowe alertu z jednym przyciskiem w systemach iOS i 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);
}

Okno dialogowe alertu z dwoma przyciskami

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

Okno dialogowe Arkusza akcji w systemach iOS i 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);
}

Okno dialogowe Arkusza akcji z przyciskiem niszczenia w systemach iOS i 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:

Zrzut ekranu przedstawiający monit modalny w systemach iOS i 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:

Zrzut ekranu przedstawiający opcjonalny monit modalny w systemach iOS i 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).