我正在开发一个WPF项目,每次有些userControl活动或处于非活动状态时,我都会尝试触发事件。
这些userControl在其中有许多其他控件。
我尝试使用userControl事件GotFocus
和LostFocus
来实现这一点,但是这些事件不能按照我需要的方式工作,因为当我使用控件内部时,userControl失去了焦点。
所以,我的问题是:当用户使用其中的控件时,有没有办法将userControl保存为Active
,当用户转到另一个userControl时,第一个获取{ {1}} ...
提前谢谢。
答案 0 :(得分:2)
我可以解决我的问题,感谢@LPL和@Rachel的评论。
我不得不使用事件UIElement.IsKeyboardFocusWithinChanged
,而且效果很好。
起初我遇到了一个问题,即回调方法被无限提升,但实际问题是每次事件MessageBox
引发时我都显示IsKeyboardFocusWithinChanged
,所以,这导致IsKeyboardFocusWithin
属性发生了变化,它创建了一个无限循环。但是由于雷切尔的建议,我可以弄清楚如何解决它。
答案 1 :(得分:0)
我不确定但是一个workarounnd可能会失去控制检查的焦点如果获得焦点的控件是你控制的孩子,如果它是写入只是返回,如果它不是然后只是写你想要丢失的逻辑你的控制重点。我希望这会有所帮助