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

本文关键字:焦点 控件 WPF | 更新日期: 2023-09-27 18:02:41

我一直在WPF中玩事件,到目前为止,我已经从事件参数的'Source'和'OriginalSource'属性以及使用发送控件和FocusManager中获得了很好的经验。问题是,当一系列事件开始触发时,是否有办法知道什么控制最终将以焦点结束,排除整个事件链中的任何干预逻辑?

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

恐怕这样做的唯一可靠的方法实际上是让焦点变化,然后在一些PreviewGotKeyboardFocus处理程序在顶视图级别处理它。

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

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