顯示快顯
顯示警示、要求使用者做出選擇,或顯示提示是常見的UI工作。 Xamarin.Forms 類別上有 Page
三種方法,可透過快顯與用戶互動: DisplayAlert
、 DisplayActionSheet
和 DisplayPromptAsync
。 兩者會以適當的原生控制項轉譯在每個平台上。
顯示警示
所有 Xamarin.Forms支援的平臺都有強制回應彈出視窗,以提醒使用者或詢問他們簡單的問題。 若要在 中 Xamarin.Forms顯示這些警示,請在 DisplayAlert
任何 Page
上使用 方法。 下列程式碼會顯示簡易訊息給使用者:
await DisplayAlert ("Alert", "You have been alerted", "OK");
此範例不會向使用者收集資訊。 警示會以強制回應的方式顯示,關閉後,使用者就可繼續與應用程式互動。
DisplayAlert
方法也可用來擷取使用者的回應,方法是顯示兩個按鈕,並傳回 boolean
。 若要從警示取得回應,請為兩個按鈕提供文字並為方法加上 await
。 當使用者選取其中一個選項後,回答就會傳回程式碼。 請注意下列範例程式碼中的 async
和 await
關鍵字:
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中轉譯原生替代方案。
若要顯示動作表單, await
DisplayActionSheet
請在任何 Page
中傳遞訊息和按鈕標籤為字串。 方法會傳回使用者所按按鈕的字串標籤。 簡易範例如下所示︰
async void OnActionSheetSimpleClicked (object sender, EventArgs e)
{
string action = await DisplayActionSheet ("ActionSheet: Send to?", "Cancel", null, "Email", "Twitter", "Facebook");
Debug.WriteLine ("Action: " + action);
}
按鈕 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);
}
方法 DisplayActionSheet
也有一個多載,可接受 FlowDirection
自變數,指定UI元素在動作表單內流動的方向。 如需流程方向的詳細資訊,請參閱 從右至左的當地語系化。
顯示提示
若要顯示提示,請在任何 中呼叫 DisplayPromptAsync
,以自變數的形式傳遞標題和訊息string
:Page
string result = await DisplayPromptAsync("Question 1", "What's your name?");
提示會以強制回應方式顯示:
如果點選 [確定] 按鈕,輸入的回應會以 傳回 。string
如果點選 [取消] 按鈕, null
則會傳回 。
方法的完整自變數清單 DisplayPromptAsync
為:
title
型string
別為 的標題,會在提示中顯示。message
型string
別為 的訊息,會在提示中顯示。accept
類型string
為 的 ,是接受按鈕的文字。 這是選擇性自變數,其預設值為OK。cancel
類型string
為 的 ,是取消按鈕的文字。 這是選擇性自變數,其預設值為 Cancel。placeholder
,類型string
為 ,是提示中顯示的佔位元文字。 這是選擇性自變數,其預設值為null
。maxLength
類型int
為的,是用戶回應的最大長度。 這是選擇性自變數,其預設值為 -1。keyboard
型Keyboard
別為 的鍵盤類型,用於用戶回應。 這是選擇性自變數,其預設值為Keyboard.Default
。initialValue
型string
別為的 ,是將會顯示的預先定義回應,而且可以編輯。 這是選擇性自變數,其預設值為空string
的 。
下列範例顯示設定一些選擇性自變數:
string result = await DisplayPromptAsync("Question 2", "What's 5 + 5?", initialValue: "10", maxLength: 2, keyboard: Keyboard.Numeric);
此程式代碼會顯示預先定義的回應 10、將可輸入的字元數限制為 2,並顯示使用者輸入的數值鍵盤:
警告
根據預設,在 UWP 上,當提示顯示任何在提示後方頁面上定義的存取金鑰時,仍然可以啟用。 如需詳細資訊,請參閱 Windows 上的 VisualElement 存取密鑰。