Focus Manager
FocusManager
服务负责管理应用程序的键盘焦点。它会跟踪当前聚焦的元素和当前焦点范围。
通过TopLevel
或Window
的实例可以访问FocusManager
,有关访问TopLevel
的更多细节,请访问TopLevel页面:
var focusManager = window.FocusManager;
方法
GetFocusedElement()
返回当前聚焦的元素 。
IInputElement? GetFocusedElement()
ClearFocus()
清除当前聚焦的元素。
void ClearFocus()
提示
聚焦控件
通常开发人员不需要使用FocusManager
服务来聚焦控件。
可以直接通过调用控件的方法实现:
var hasFocused = button.Focus();
如果控件不可见并且Focusable
属性设置为false,Focus
方法可能返回false
。
监听全局焦点变化
虽然FocusManager.GetFocusedElement
方法允许获取当前聚焦的控件,但它不适合作为事件使用。
相反,请使用InputElement.GotFocusEvent.Raised.Subscribe(handler)
方法。注意,它会在所有顶级窗口中全局监听事件。