WPF - 知道哪个控件最终会成为焦点

时间:2015-07-14 13:41:57

标签: c# wpf events focus

我一直在玩WPF中的事件,到目前为止,我已经从事件args的'Source'和'OriginalSource'属性以及使用发送控件和FocusManager获得了很好的里程。这就是事件,当一系列事件开始解雇时,有没有什么方法可以知道什么样的控制最终会聚焦于整个事件链中的任何干预逻辑?

1 个答案:

答案 0 :(得分:1)

我担心这样做的唯一可靠方法实际上是让焦点更改,然后在顶级视图级别的某个PreviewGotKeyboardFocus处理程序中处理它。

然后,您可以知道哪个控件将获得焦点,并使用e.Handled = true取消更改。

PD。所有UIElements中都有一个名为PredictFocus的函数,但它只适用于位置遍历更改,而不适用于基于选项卡的更改(或自定义聚焦)。