팝업 항목 표시
경고를 표시하거나, 사용자에게 선택을 요청하거나, 프롬프트를 표시하는 것이 일반적인 UI 작업입니다. Xamarin.Forms에는 팝업을 Page
통해 사용자와 상호 작용하기 위한 세 가지 DisplayAlert
DisplayActionSheet
DisplayPromptAsync
메서드가 클래스에 있습니다. 이 두 가지 항목은 각 플랫폼에 적절한 네이티브 컨트롤을 사용하여 렌더링됩니다.
경고 표시
지원되는 모든 Xamarin.Forms플랫폼에는 사용자에게 경고하거나 간단한 질문을 할 수 있는 모달 팝업이 있습니다. 이러한 경고를 Xamarin.Forms표시하려면 모든 Page
에서 메서드를 DisplayAlert
사용합니다. 다음 코드 줄은 사용자에게 표시되는 간단한 메시지입니다.
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
메서드에는 경고 내에서 UI 요소가 흐르는 방향을 지정하는 인수를 허용하는 FlowDirection
오버로드가 있습니다. 흐름 방향에 대한 자세한 내용은 오른쪽에서 왼쪽 지역화를 참조 하세요.
Warning
기본적으로 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
메서드에는 작업 시트 내에서 UI 요소가 흐르는 방향을 지정하는 인수를 허용하는 FlowDirection
오버로드가 있습니다. 흐름 방향에 대한 자세한 내용은 오른쪽에서 왼쪽 지역화를 참조 하세요.
프롬프트 표시
프롬프트를 표시하려면 제목 및 메시지를 인수로 string
전달하는 모든 메시지를 호출 DisplayPromptAsync
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로 제한하고, 사용자 입력을 위한 숫자 키보드를 표시합니다.
Warning
기본적으로 UWP에서는 프롬프트가 표시되는 경우 프롬프트 뒤에 있는 페이지에 정의된 액세스 키를 계속 활성화할 수 있습니다. 자세한 내용은 Windows의 VisualElement 액세스 키를 참조 하세요.