我们有一个自定义画布,它有专门的节点,其行为很像标准 MDI 应用程序的窗口。期望的行为是,如果“窗口”的任何子控件具有焦点,则该“窗口”被认为是活动的。
现在 IsFocused 属性似乎没有级联,这意味着如果子控件具有焦点,它的容器也没有设置为“focused”,所以我们不能使用它。出于同样的原因,我们不能在容器上设置 IsFocused 属性,因为我相信这会从孩子那里偷走它。
我唯一的想法是创建一个名为 HasChildWithFocus 或类似的新 DP,然后在代码隐藏中,侦听冒泡事件并设置该标志。不确定这是最好的方法。(我们可以将其实现为附加属性/附加行为的组合。)
但是当然,如果我们可以简单地问一个控件“嘿......你或你的任何孩子有焦点吗?”会好得多。
那你可以吗?