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
, DisplayActionSheet
i 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 Page
metodzie . Poniższy wiersz kodu przedstawia użytkownikowi prosty komunikat:
await DisplayAlert ("Alert", "You have been alerted", "OK");
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);
}
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, await
DisplayActionSheet
w dowolnym Page
pliku 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);
}
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);
}
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 Page
pliku , przekazując tytuł i komunikat jako string
argumenty:
string result = await DisplayPromptAsync("Question 1", "What's your name?");
Monit jest wyświetlany modalnie:
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
, typustring
, to tytuł do wyświetlenia w wierszu polecenia.message
, typustring
, to komunikat wyświetlany w wierszu polecenia.accept
, typustring
, to tekst przycisku akceptowania. Jest to opcjonalny argument, którego wartość domyślna to OK.cancel
, typustring
, to tekst przycisku anulowania. Jest to opcjonalny argument, którego wartość domyślna to Anuluj.placeholder
, typustring
, jest tekstem zastępczym wyświetlanym w wierszu polecenia. Jest to opcjonalny argument, którego wartością domyślną jestnull
.maxLength
, typuint
, jest maksymalną długością odpowiedzi użytkownika. Jest to opcjonalny argument, którego wartość domyślna to -1.keyboard
, typu , to typKeyboard
klawiatury, który ma być używany dla odpowiedzi użytkownika. Jest to opcjonalny argument, którego wartością domyślną jestKeyboard.Default
.initialValue
, typustring
, 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 pustastring
.
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:
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).