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. 키보드 포커스를 사용 하 여이 요소에 IsKeyboardFocusedtrue합니다.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, ContextMenu, 및 ToolBar 클래스입니다.By default, the Window class is a focus scope as are the Menu, ContextMenu, and ToolBar classes. 가 포커스 범위는 요소가 IsFocusScopetrue합니다.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. 키보드 포커스를 변경 하는 경우는 TextBoxMenuItem, 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.

기본값인 IsFocusScopeWindowMenu, ToolBar, 및 ContextMenutrue합니다.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.

적용 대상