共用方式為


顯示快顯

顯示警示、要求使用者做出選擇,或顯示提示是常見的UI工作。 Xamarin.Forms 類別上有 Page 三種方法,可透過快顯與用戶互動: DisplayAlertDisplayActionSheetDisplayPromptAsync。 兩者會以適當的原生控制項轉譯在每個平台上。

顯示警示

所有 Xamarin.Forms支援的平臺都有強制回應彈出視窗,以提醒使用者或詢問他們簡單的問題。 若要在 中 Xamarin.Forms顯示這些警示,請在 DisplayAlert 任何 Page上使用 方法。 下列程式碼會顯示簡易訊息給使用者:

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

iOS 和 Android 上具有一個按鈕的警示對話方塊

此範例不會向使用者收集資訊。 警示會以強制回應的方式顯示,關閉後,使用者就可繼續與應用程式互動。

DisplayAlert 方法也可用來擷取使用者的回應,方法是顯示兩個按鈕,並傳回 boolean。 若要從警示取得回應,請為兩個按鈕提供文字並為方法加上 await。 當使用者選取其中一個選項後,回答就會傳回程式碼。 請注意下列範例程式碼中的 asyncawait 關鍵字:

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

具有兩個按鈕的警示對話框

方法 DisplayAlert 也有多載,可接受 FlowDirection 自變數,指定UI元素在警示內流動的方向。 如需流程方向的詳細資訊,請參閱 從右至左的當地語系化

警告

根據預設,UWP 上會顯示警示時,仍可啟動警示後方頁面上定義的任何存取密鑰。 如需詳細資訊,請參閱 Windows 上的 VisualElement 存取密鑰。

引導使用者完成工作

UIActionSheet 是 iOS 中常見的 UI 元素。 方法 Xamarin.FormsDisplayActionSheet 可讓您在跨平臺應用程式中納入此控件,並在Android和UWP中轉譯原生替代方案。

若要顯示動作表,請在任何 Page 中的 DisplayActionSheet 加上 await,將以字串的形式傳遞訊息和按鈕標籤。 方法會傳回使用者所按按鈕的字串標籤。 簡易範例如下所示︰

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

iOS 和 Android 上的 ActionSheet 對話框

按鈕 destroy 會以不同的方式轉譯為 iOS 上的其他按鈕,並可保留 null 或指定為第三個字串參數。 下列範例使用 destroy 按鈕︰

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

iOS 和 Android 上具有終結按鈕的 ActionSheet 對話框

方法 DisplayActionSheet 也有一個多載,可接受 FlowDirection 自變數,指定UI元素在動作表單內流動的方向。 如需流程方向的詳細資訊,請參閱 從右至左的當地語系化

顯示提示

若要顯示提示,請在任何 中呼叫 DisplayPromptAsync ,以自變數的形式傳遞標題和訊息stringPage

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

提示會以強制回應方式顯示:

iOS 和 Android 上強制回應提示的螢幕快照

如果點選 [確定] 按鈕,輸入的回應會以 傳回 。string 如果點選 [取消] 按鈕, null 則會傳回 。

方法的完整自變數清單 DisplayPromptAsync 為:

  • titlestring別為 的標題,會在提示中顯示。
  • messagestring別為 的訊息,會在提示中顯示。
  • accept類型 string為 的 ,是接受按鈕的文字。 這是選擇性自變數,其預設值為OK。
  • cancel類型 string為 的 ,是取消按鈕的文字。 這是選擇性自變數,其預設值為 Cancel。
  • placeholder,類型 string為 ,是提示中顯示的佔位元文字。 這是選擇性自變數,其預設值為 null
  • maxLength類型 int為的,是用戶回應的最大長度。 這是選擇性自變數,其預設值為 -1。
  • keyboardKeyboard別為 的鍵盤類型,用於用戶回應。 這是選擇性自變數,其預設值為 Keyboard.Default
  • initialValuestring別為的 ,是將會顯示的預先定義回應,而且可以編輯。 這是選擇性自變數,其預設值為空 string的 。

下列範例顯示設定一些選擇性自變數:

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

此程式代碼會顯示預先定義的回應 10、將可輸入的字元數限制為 2,並顯示使用者輸入的數值鍵盤:

iOS 和 Android 上選擇性強制回應提示的螢幕快照

警告

根據預設,在 UWP 上,當提示顯示任何在提示後方頁面上定義的存取金鑰時,仍然可以啟用。 如需詳細資訊,請參閱 Windows 上的 VisualElement 存取密鑰。