问题状况:
自定义的控件内,包含两个按钮。程序加载后,userControl高亮,主窗口被禁用,默认焦点设置在A或B按钮上。如图。
一旦切换到其它窗口(即当前窗口无效化),再切回窗口时。TAB键失效。
解决方法:
在userControl内处理
1.当主窗口变为背景窗口时,即处理Deactivated事件,需要记录当前焦点。
focusElement = FocusManager.GetFocusedElement(Now_Grid);//Now_Grid是userControl的最外层Grid名,并设置【FocusManager.IsFocusScope="True"】
2.当主窗口被激活时,即处理Activated事件,需要重新设置焦点。
Keyboard.Focus(this);//这里必须先设置userControl有焦点,才能把焦点进一步设置到A或B控件
Keyboard.Focus(focusElement);//把焦点进一步设置到A或B控件