다음을 통해 공유


FocusManager.TryMoveFocusAsync 메서드

정의

오버로드

TryMoveFocusAsync(FocusNavigationDirection)

포커스가 있는 현재 요소에서 지정된 방향의 다음 포커스 가능 요소로 포커스를 변경하려고 비동기적으로 시도합니다.

TryMoveFocusAsync(FocusNavigationDirection, FindNextElementOptions)

포커스가 있는 현재 요소에서 지정된 방향의 다음 포커스 가능 요소로 포커스를 변경하고 지정된 탐색 옵션의 적용을 받도록 비동기적으로 시도합니다.

TryMoveFocusAsync(FocusNavigationDirection)

포커스가 있는 현재 요소에서 지정된 방향의 다음 포커스 가능 요소로 포커스를 변경하려고 비동기적으로 시도합니다.

public:
 static IAsyncOperation<FocusMovementResult ^> ^ TryMoveFocusAsync(FocusNavigationDirection focusNavigationDirection);
/// [Windows.Foundation.Metadata.Overload("TryMoveFocusAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
 static IAsyncOperation<FocusMovementResult> TryMoveFocusAsync(FocusNavigationDirection const& focusNavigationDirection);
[Windows.Foundation.Metadata.Overload("TryMoveFocusAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<FocusMovementResult> TryMoveFocusAsync(FocusNavigationDirection focusNavigationDirection);
function tryMoveFocusAsync(focusNavigationDirection)
Public Shared Function TryMoveFocusAsync (focusNavigationDirection As FocusNavigationDirection) As IAsyncOperation(Of FocusMovementResult)

매개 변수

focusNavigationDirection
FocusNavigationDirection

포커스가 요소에서 앱 UI 내의 요소로 이동하는 방향입니다.

반환

포커스가 성공적으로 설정되었는지 여부를 나타내는 FocusMovementResult.

특성

예제

여기서는 WebView 개체에 포커스를 설정하는 방법을 보여 하며, 실패하는 경우 원래 요소로 포커스를 복원합니다.

async void MoveFocus(WebView webView))
{
    FocusMovementResult result;
    result = await FocusManager.TryFocusAsync(webView, FocusState.Programmatic);
    if (!result.Succeeded)
    {
        // Restore focus to original element.
        this.Focus(FocusState.Programmatic);
    }
}

설명

  • FocusManager.TryMoveFocus 메서드는 포커스 변경이 완료되기 전에 true(성공)를 반환합니다.
  • GetFocusedElement 비동기 작업이 완료될 때까지 새로 포커스가 있는 개체를 반환하지 않습니다.
  • 포커스가 손실된 컨트롤은 LosingFocus 이벤트를 동기적으로 받지만 비동기 작업이 완료될 때까지 LostFocus 받지 않습니다.
  • 포커스를 가져오는 컨트롤은 GettingFocus 이벤트를 동기적으로 수신하지만 비동기 작업이 완료될 때까지 GotFocus 수신하지 않습니다.

TryFocusAsync 앱 프로세스에서 실행 중인 요소에서 호출되면 동기적으로 완료됩니다.

FindNextElement(FocusNavigationDirection, FindNextElementOptions) 메서드 또는 FindNextElement(FocusNavigationDirection) 메서드를 사용하여 프로그래밍 방식으로 포커스를 이동할 수도 있습니다. 이러한 메서드는 지정된 탐색 방향에 따라 포커스를 받는 요소(DependencyObject)를 검색합니다(방향 탐색만 탭 탐색을 에뮬레이트하는 데 사용할 수 없음).

메모

FindNextFocusableElement UIElement검색하므로 FindNextElement 메서드 FindNextFocusableElement를 사용하는 것이 좋습니다. FindNextFocusableElement 다음 포커스 가능한 요소가 UIElement 아닌 경우 null 반환합니다(예: Hyperlink 개체).

추가 정보

적용 대상

TryMoveFocusAsync(FocusNavigationDirection, FindNextElementOptions)

포커스가 있는 현재 요소에서 지정된 방향의 다음 포커스 가능 요소로 포커스를 변경하고 지정된 탐색 옵션의 적용을 받도록 비동기적으로 시도합니다.

public:
 static IAsyncOperation<FocusMovementResult ^> ^ TryMoveFocusAsync(FocusNavigationDirection focusNavigationDirection, FindNextElementOptions ^ focusNavigationOptions);
/// [Windows.Foundation.Metadata.Overload("TryMoveFocusWithOptionsAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
 static IAsyncOperation<FocusMovementResult> TryMoveFocusAsync(FocusNavigationDirection const& focusNavigationDirection, FindNextElementOptions const& focusNavigationOptions);
[Windows.Foundation.Metadata.Overload("TryMoveFocusWithOptionsAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public static IAsyncOperation<FocusMovementResult> TryMoveFocusAsync(FocusNavigationDirection focusNavigationDirection, FindNextElementOptions focusNavigationOptions);
function tryMoveFocusAsync(focusNavigationDirection, focusNavigationOptions)
Public Shared Function TryMoveFocusAsync (focusNavigationDirection As FocusNavigationDirection, focusNavigationOptions As FindNextElementOptions) As IAsyncOperation(Of FocusMovementResult)

매개 변수

focusNavigationDirection
FocusNavigationDirection

포커스가 요소에서 앱 UI 내의 요소로 이동하는 방향입니다.

focusNavigationOptions
FindNextElementOptions

포커스 후보를 식별하는 데 사용되는 탐색 옵션입니다.

반환

포커스가 성공적으로 설정되었는지 여부를 나타내는 FocusMovementResult.

특성

예제

여기서는 WebView 개체에 포커스를 설정하는 방법을 보여 하며, 실패하는 경우 원래 요소로 포커스를 복원합니다.

async void MoveFocus(WebView webView))
{
    FocusMovementResult result;
    result = await FocusManager.TryFocusAsync(webView, FocusState.Programmatic);
    if (!result.Succeeded)
    {
        // Restore focus to original element.
        this.Focus(FocusState.Programmatic);
    }
}

설명

  • FocusManager.TryMoveFocus 메서드는 포커스 변경이 완료되기 전에 true(성공)를 반환합니다.
  • GetFocusedElement 비동기 작업이 완료될 때까지 새로 포커스가 있는 개체를 반환하지 않습니다.
  • 포커스가 손실된 컨트롤은 LosingFocus 이벤트를 동기적으로 받지만 비동기 작업이 완료될 때까지 LostFocus 받지 않습니다.
  • 포커스를 가져오는 컨트롤은 GettingFocus 이벤트를 동기적으로 수신하지만 비동기 작업이 완료될 때까지 GotFocus 수신하지 않습니다.

TryFocusAsync 앱 프로세스에서 실행 중인 요소에서 호출되면 동기적으로 완료됩니다.

FindNextElement(FocusNavigationDirection, FindNextElementOptions) 메서드 또는 FindNextElement(FocusNavigationDirection) 메서드를 사용하여 프로그래밍 방식으로 포커스를 이동할 수도 있습니다. 이러한 메서드는 지정된 탐색 방향에 따라 포커스를 받는 요소(DependencyObject)를 검색합니다(방향 탐색만 탭 탐색을 에뮬레이트하는 데 사용할 수 없음).

메모

FindNextFocusableElement UIElement검색하므로 FindNextElement 메서드 FindNextFocusableElement를 사용하는 것이 좋습니다. FindNextFocusableElement 다음 포커스 가능한 요소가 UIElement 아닌 경우 null 반환합니다(예: Hyperlink 개체).

추가 정보

적용 대상