FocusManager 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
포커스 범위를 확인 및 설정하고 범위 내에서 포커스가 있는 요소를 설정하기 위한 정적 메서드, 연결된 속성 및 이벤트의 집합을 제공합니다.
public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
- 상속
-
FocusManager
설명
WPF(Windows Presentation Foundation)에는 포커스와 관련된 두 가지 개념인 키보드 포커스와 논리적 포커스가 있습니다.
키보드 포커스는 현재 키보드 입력을 수신하는 요소와 관련이 있습니다. 키보드 포커스가 있는 요소는 하나만 있을 수 있습니다. 키보드 포커스가 있는 이 요소는 로 설정true
되었습니다IsKeyboardFocused.
Keyboard.FocusedElement 는 키보드 포커스가 있는 요소를 반환합니다.
논리적 포커스는 FocusManager.FocusedElement 특정 포커스 scope 내의 에 관련됩니다.
포커스 범위는 범위 내에서 FocusManager.FocusedElement를 추적하는 컨테이너 요소입니다. 기본적으로 Window 클래스는 , ContextMenu및 ToolBar 클래스와 마찬가지로 Menuscope 포커스입니다. 포커스 scope 요소가 로 설정true
되었습니다IsFocusScope.
논리적 포커스가 있는 요소가 여러 개 있을 수 있지만 단일 포커스 scope 내에서 논리적 포커스가 있는 요소는 하나만 있을 수 있습니다. 논리적 포커스가 있는 요소에 반드시 키보드 포커스가 있는 것은 아니지만 키보드 포커스가 있는 요소에는 논리적 포커스가 있습니다. 포커스 scope 내에서 포커스 scope 정의할 수 있습니다. 이 경우 부모 포커스 scope 자식 포커스 scope 모두 를 가질 FocusManager.FocusedElement수 있습니다.
다음 시나리오에서는 가 인 및 이 있는 WPF 애플리케이션에서 키보드 포커스 및 Menu 논리적 포커스가 MenuItemWindowTextBox 어떻게 변경되는지 보여 줍니다. 키보드 포커스가 TextBoxMenuItem에서 로 변경되면 키보드 포커스가 TextBox 손실되지만 포커스 scope 논리적 포커스가 Window 유지됩니다. 는 MenuItem 키보드 포커스를 가져오고 포커스 scope 대한 논리적 포커스를 Menu 얻습니다. 키보드 포커스가 루트Window로 돌아오면 논리 포커스가 있는 Window 포커스 scope 요소는 키보드 포커스를 얻습니다. 이 경우 입니다TextBox. TextBox 이제 에는 키보드 포커스와 논리적 포커스가 있습니다. 는 MenuItem 키보드 포커스를 잃지만 포커스 scope 논리적 포커스를 Menu 유지합니다.
, , Menu및 ToolBarContextMenu 의 IsFocusScopeWindow기본값은 입니다true
.
포커스에 대한 자세한 내용은 입력 개요 및 포커스 개요를 참조하세요.
필드
FocusedElementProperty |
FocusedElement 연결된 속성을 식별합니다. |
GotFocusEvent |
GotFocus 연결된 이벤트를 식별합니다. |
IsFocusScopeProperty |
IsFocusScope 연결된 속성을 식별합니다. |
LostFocusEvent |
LostFocus 연결된 이벤트를 식별합니다. |
연결된 속성
FocusedElement |
이 속성이 연결된 요소에 논리적 포커스가 있는지 여부를 확인합니다. |
IsFocusScope |
이 속성이 연결된 요소가 포커스 범위인지 여부를 확인합니다. |
메서드
AddGotFocusHandler(DependencyObject, RoutedEventHandler) |
GotFocus 연결된 이벤트에 대한 처리기를 추가합니다. |
AddLostFocusHandler(DependencyObject, RoutedEventHandler) |
LostFocus 연결된 이벤트에 대한 처리기를 추가합니다. |
GetFocusedElement(DependencyObject) |
지정된 포커스 범위 내에서 논리적 포커스가 있는 요소를 가져옵니다. |
GetFocusScope(DependencyObject) |
IsFocusScope가 |
GetIsFocusScope(DependencyObject) |
지정된 DependencyObject가 포커스 범위인지 여부를 확인합니다. |
RemoveGotFocusHandler(DependencyObject, RoutedEventHandler) |
GotFocus 연결된 이벤트에 대한 처리기를 제거합니다. |
RemoveLostFocusHandler(DependencyObject, RoutedEventHandler) |
LostFocus 연결된 이벤트에 대한 처리기를 제거합니다. |
SetFocusedElement(DependencyObject, IInputElement) |
지정된 요소에 논리적 포커스를 설정합니다. |
SetIsFocusScope(DependencyObject, Boolean) |
지정된 DependencyObject를 포커스 범위로 설정합니다. |
연결된 이벤트
GotFocus |
요소가 포커스를 받을 때 발생합니다. |
LostFocus |
요소가 포커스를 잃을 때 발생합니다. |
적용 대상
.NET