我一直在玩WPF中的事件,到目前为止,我已经从事件args的'Source'和'OriginalSource'属性以及使用发送控件和FocusManager获得了很好的里程。这就是事件,当一系列事件开始解雇时,有没有什么方法可以知道什么样的控制最终会聚焦于整个事件链中的任何干预逻辑?
答案 0 :(得分:1)
我担心这样做的唯一可靠方法实际上是让焦点更改,然后在顶级视图级别的某个PreviewGotKeyboardFocus
处理程序中处理它。
然后,您可以知道哪个控件将获得焦点,并使用e.Handled = true
取消更改。
PD。所有UIElements中都有一个名为PredictFocus
的函数,但它只适用于位置遍历更改,而不适用于基于选项卡的更改(或自定义聚焦)。