FocusManager 클래스

정의

확인 및 포커스 범위를 설정 및 범위 내에서 포커스가 있는 요소를 설정 하기 위한 정적 메서드, 연결 된 속성 및 이벤트 집합을 제공 합니다.Provides a set of static methods, attached properties, and events for determining and setting focus scopes and for setting the focused element within the scope.

public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
상속
FocusManager

설명

Windows Presentation Foundation (WPF)의 두 가지 개념이 있습니다 포커스와 관련 된: 키보드 포커스와 논리 포커스가 있습니다.In Windows Presentation Foundation (WPF) there are two concepts concerning focus: keyboard focus and logical focus.

키보드 포커스는 키보드 입력을 받고 현재 요소와 관련이 있습니다.Keyboard focus pertains to the element which is currently receiving keyboard input. 키보드 포커스가 있는 요소가 하나만 있을 수 있습니다.There can be only one element with keyboard focus. 키보드 포커스가 있는이 요소에는 true로 설정 된 IsKeyboardFocused 있습니다.This element with keyboard focus has IsKeyboardFocused set to true. Keyboard.FocusedElement는 키보드 포커스가 있는 요소를 반환 합니다.Keyboard.FocusedElement returns the element with keyboard focus.

논리적 포커스는 특정 포커스 범위 내의 FocusManager.FocusedElement와 관련이 있습니다.Logical focus pertains to the FocusManager.FocusedElement within a specific focus scope.

포커스 범위는 해당 범위 내에서 FocusManager.FocusedElement를 추적 하는 컨테이너 요소입니다.A focus scope is a container element that keeps track of the FocusManager.FocusedElement within its scope. 기본적으로 Window 클래스는 Menu, ContextMenuToolBar 클래스와 동일한 포커스 범위입니다.By default, the Window class is a focus scope as are the Menu, ContextMenu, and ToolBar classes. 포커스 범위에 해당 하는 요소는 IsFocusScope true로 설정 됩니다.An element which is a focus scope has IsFocusScope set to true.

논리 포커스를 가진 요소가 여러 개 있을 수 있지만 단일 포커스 범위 내에서 논리적 포커스가 있는 요소가 하나만 존재할 합니다.There can be multiple elements with logical focus, but there can only be one element with logical focus within a single focus scope. 논리적 포커스가 있는 요소가 키보드 포커스를 반드시 있지만 키보드 포커스가 있는 요소가 논리 포커스를 갖게 됩니다.An element with logical focus does not necessarily have keyboard focus, but an element with keyboard focus will have logical focus. 포커스 범위의 포커스 범위를 정의 하는 것이 가능 합니다.It is possible to define a focus scope within a focus scope. 이 경우 부모 포커스 범위와 자식 포커스 범위 모두 FocusManager.FocusedElement수 있습니다.In this case, both the parent focus scope and the child focus scope can have a FocusManager.FocusedElement.

다음 시나리오는 WPF 애플리케이션에서 키보드 포커스와 논리 포커스가 변경 하는 방법을 보여 줍니다.는 Window 사용 하 여는 TextBoxMenu 있는 MenuItem입니다.The following scenario illustrates how keyboard focus and logical focus change in a WPF application that has a Window with a TextBox and a Menu which has a MenuItem. 키보드 포커스가 TextBox에서 MenuItem로 변경 되 면 TextBox는 키보드 포커스를 손실 하지만 Window 포커스 범위에 대 한 논리적 포커스는 유지 합니다.When keyboard focus changes from the TextBox to the MenuItem, the TextBox losses keyboard focus but retains logical focus for the Window focus scope. MenuItem는 키보드 포커스를 가져오고 Menu 포커스 범위에 대 한 논리적 포커스를 가져옵니다.The MenuItem obtains keyboard focus and obtains logical focus for the Menu focus scope. 키보드 포커스가 루트 Window로 반환 되 면 논리적 포커스가 있는 Window 포커스 범위의 요소가 키보드 포커스 (이 경우 TextBox)를 가져옵니다.When keyboard focus returns to the root Window, the element in Window focus scope with logical focus will obtain keyboard focus, which in this case is the TextBox. 이제 TextBox에 키보드 포커스와 논리 포커스가 있습니다.The TextBox now has keyboard focus and logical focus. MenuItem 키보드 포커스를 잃으면 Menu 포커스 범위에 대 한 논리적 포커스를 유지 합니다.The MenuItem loses keyboard focus, but retains logical focus for the Menu focus scope.

Window, Menu, ToolBarContextMenu에서 IsFocusScope의 기본값은 true입니다.The default value of IsFocusScope on a Window, Menu, ToolBar, and ContextMenu is true.

포커스에 대 한 자세한 내용은 입력 개요포커스 개요를 참조 하세요.For more information on focus, see the Input Overview and the Focus Overview.

필드

FocusedElementProperty

FocusedElement 연결된 속성을 식별합니다.Identifies the FocusedElement attached property.

GotFocusEvent

GotFocus 연결된 이벤트를 식별합니다.Identifies the GotFocus attached event.

IsFocusScopeProperty

IsFocusScope 연결된 속성을 식별합니다.Identifies the IsFocusScope attached property.

LostFocusEvent

LostFocus 연결된 이벤트를 식별합니다.Identifies the LostFocus attached event.

연결된 속성

FocusedElement

이 속성에 연결 된 요소에 논리 포커스가 있는지 여부를 결정 합니다.Determines whether the element this property is attached to has logical focus.

IsFocusScope

이 속성이 연결된 요소가 포커스 범위인지 여부를 확인합니다.Determines whether the element this property is attached to is a focus scope.

메서드

AddGotFocusHandler(DependencyObject, RoutedEventHandler)

GotFocus 연결된 이벤트에 대한 처리기를 추가합니다.Adds a handler for the GotFocus attached event.

AddLostFocusHandler(DependencyObject, RoutedEventHandler)

LostFocus 연결된 이벤트에 대한 처리기를 추가합니다.Adds a handler for the LostFocus attached event.

GetFocusedElement(DependencyObject)

지정된 포커스 범위 내에서 논리적 포커스가 있는 요소를 가져옵니다.Gets the element with logical focus within the specified focus scope.

GetFocusScope(DependencyObject)

IsFocusScopetrue로 설정된 지정된 요소의 가장 가까운 상위 요소를 확인합니다.Determines the closest ancestor of the specified element that has IsFocusScope set to true.

GetIsFocusScope(DependencyObject)

지정된 DependencyObject가 포커스 범위인지 여부를 확인합니다.Determines whether the specified DependencyObject is a focus scope.

RemoveGotFocusHandler(DependencyObject, RoutedEventHandler)

GotFocus 연결된 이벤트에 대한 처리기를 제거합니다.Removes a handler for the GotFocus attached event.

RemoveLostFocusHandler(DependencyObject, RoutedEventHandler)

LostFocus 연결된 이벤트에 대한 처리기를 제거합니다.Removes a handler for the LostFocus attached event.

SetFocusedElement(DependencyObject, IInputElement)

지정된 요소에 논리적 포커스를 설정합니다.Sets logical focus on the specified element.

SetIsFocusScope(DependencyObject, Boolean)

지정된 DependencyObject를 포커스 범위로 설정합니다.Sets the specified DependencyObject as a focus scope.

연결된 이벤트

GotFocus

요소가 포커스를 가져오면 발생 합니다.Occurs when an element gets focus.

LostFocus

요소가 포커스를 잃을 때 발생 합니다.Occurs when an element loses focus.

적용 대상