다음을 통해 공유


InputFocusController 클래스

정의

ContentIsland에서 포커스 이벤트의 처리 및 관리를 지원하는 개체를 나타냅니다.

public ref class InputFocusController sealed : InputObject
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65540)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class InputFocusController final : InputObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65540)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class InputFocusController : InputObject
Public NotInheritable Class InputFocusController
Inherits InputObject
상속
Object Platform::Object IInspectable InputObject InputFocusController
특성

설명

ContentIsland에는 Win32 API와 상호 작용하고 Win32 메시지(예: 다양한 입력 메시지)를 받을 수 있는 기본 HWND가 있습니다.

ContentIsland 기본 HWND에 Win32 포커스가 있는 경우 포커스가 있습니다.

ContentIsland에 포커스가 있으면 시스템에서 키보드 입력 메시지를 받습니다. 키보드 입력 이벤트는 InputKeyboardSource.GetForIsland(Microsoft.UI.Content.ContentIsland) 메서드를 통해 검색되는 InputKeyboardSource 개체에서 처리할 수 있습니다.

참고

Win32 포커스 및 키보드 입력에 대한 자세한 내용은 키보드 입력 개요의 키보드 포커스 및 활성화 섹션을 참조 하세요.

삭제 시 동작

InputFocusController는 특정 ContentIsland와 연결됩니다. InputFocusController가 삭제되면 해당 연결이 손실되고 모든 이벤트 처리기가 등록 취소됩니다.

연결된 ContentIsland 가 삭제되면 연결된 InputFocusController도 삭제됩니다.

자세한 내용은 Microsoft.UI.Input.InputObject를 참조하세요.

스레딩 모델

InputFocusController는 생성된 스레드에서만 사용할 수 있습니다. 다른 스레드의 모든 속성 액세스 또는 함수 호출은 RPC_E_WRONG_THREAD(또는 해당하는 예상 오류 유형)를 반환합니다.

자세한 내용은 Microsoft.UI.Input.InputObject를 참조하세요.

속성

DispatcherQueue

InputObject에 대한 DispatcherQueue 를 가져옵니다.

(다음에서 상속됨 InputObject)
HasFocus

연결된 ContentIsland 에 포커스가 있는지 여부를 가져옵니다.

메서드

DepartFocus(FocusNavigationRequest)

Content.ContentIsland 호스트에 대한 InputFocusNavigationHost.DepartFocusRequested 이벤트를 발생합니다.

예를 들어 사용자가 ContentIsland 내의 모든 탭 가능 요소를 탭하여 이제 포커스가 아일랜드에서 호스팅 애플리케이션의 다른 항목으로 이동해야 합니다.

GetForIsland(ContentIsland)

InputFocusController 지정된 ContentIsland에 대한 개체를 검색합니다.

TrySetFocus()

InputFocusController와 연결된 ContentIsland 에 포커스를 설정하려고 시도합니다.

이벤트

GotFocus

연결된 ContentIsland 가 포커스를 받을 때 발생합니다.

LostFocus

포커스가 연결된 ContentIsland에서 이동될 때 발생합니다.

NavigateFocusRequested

Content.ContentIsland 호스트가 ContentIsland에 초점을 맞추려고 할 때 발생합니다.

예를 들어 사용자가 호스트의 요소를 탭하여 이제 ContentIsland로 탭해야 합니다. 호스팅 애플리케이션은 SiteBridge와 연결된 InputFocusNavigationHost에서 InputFocusNavigationHost.NavigateFocus(Microsoft.UI.Input.FocusNavigationRequest)를 호출합니다. 그런 다음 ContentIsland에 대한 InputFocusController 는 이 NavigateFocusRequested 이벤트를 수신하고 포커스를 받을지 여부를 결정할 수 있습니다.

적용 대상

추가 정보