WPF中的焦点问题

WPF中有两种焦点
keyboard focus 键盘焦点
logical focus 逻辑焦点
 
键盘焦点
首先元素的Focusable和IsVisible属性必须设置为true,获得键盘焦点后元素等待输入,可以通过键盘输入字符
Control.IsKeyboardFocused
Keyboard.FocusedElement
 
设置焦点
Keyboard.Focus(firstButton);
 
相关的事件
GotKeyboardFocus LostKeyboardFocus
 
逻辑焦点
FocusManager.SetIsFocusScope(this.grid, true);
离开之后,保留逻辑焦点。当再次获得焦点时,具有逻辑焦点的元素获得键盘焦点
例如,窗体文本框正在输入文字,点击其他程序输入,再回到窗体,点击窗体其他部分,文本框自动得到焦点
原因是这个过程中逻辑焦点元素没有发生变化
FocusManager.GetFocusedElement(this.grid)
 
设置焦点
FocusManager.SetFocusedElement(focusScope1, button2);
 
相关的事件
GotFocus和LostFocus
 
posted @ 2022-07-09 17:10  内心澎湃的水晶侠  阅读(209)  评论(0编辑  收藏  举报