我的窘境是这样的: [触发LostFocus事件的任何代码]如何确定当内容的子元素可能无法被测试时,它不再具有焦点?
半相关背景故事
我最近开始了一个改进Popup
的项目。尝试将IsOpen
绑定到ToggleButton.IsChecked
时,它有时会被卡住打开。当然,我开始处理GotFocus
和LostFocus
,但这些通常都没有用,我无法用Focus()
(“ Attempts 如果需要,将焦点设置为此元素“)。
在我基于adorner的解决方案中,我的第一个不优雅的方法是在Win32中捕获全局MouseDown事件,并确定鼠标坐标是否在装饰边界内。然而,当某些内容旨在不命中测试可见时,这简单地分崩离析。