5

我正在开发一个 WPF 项目,并且每次某些 userControl 处于活动状态或不活动状态时,我都会尝试触发一个事件。

这些用户控件内部还有许多其他控件。

我尝试使用 userControl 事件GotFocus和来实现这一点LostFocus,但是这些事件没有按我需要的方式工作,因为当我使用其中的控件时,userControl 失去了焦点。

所以,我的问题是:有没有办法在用户使用其中的控件时维护 userControl Active,并且,当用户转到另一个 userControl 时,第一个得到Inactive???

先感谢您。

4

2 回答 2

2

感谢@LPL 和@Rachel 的评论,我可以解决我的问题。

我不得不使用该事件UIElement.IsKeyboardFocusWithinChanged,并且效果很好。

起初我遇到的问题是回调方法被无限引发,但实际问题是MessageBox每次IsKeyboardFocusWithinChanged引发事件时我都显示一个,所以,这导致IsKeyboardFocusWithin属性更改并创建了一个无限循环。但多亏了瑞秋的建议,我才能弄清楚如何解决它。

于 2012-06-29T17:20:58.523 回答
0

我不确定,但一种解决方法可能是控制失去焦点检查获得焦点的控件是否是您的控件的子控件,如果它是写入,则返回,如果不是,那么只需编写您想要失去焦点的逻辑控制。我希望这个能帮上忙

于 2012-06-28T18:48:50.383 回答