如何判断哪个Silverlight Popup(或ChildWindow)是最顶层的?

问题描述:

我正在尝试在Silverlight应用程序中进行测试,以查找鼠标光标下的元素。如何判断哪个Silverlight Popup(或ChildWindow)是最顶层的?

通常VisualTreeHelper.FindElementsInHostCoordinates适用于此。如果打开了Popup,我需要将弹出窗口传递给命中测试方法。如果有多个弹出窗口打开时,我需要确定正确的(最顶层)弹出的传递。

有没有可靠的方法来确定哪些Popup是最上面的?我正在做一个装配,可能会在Popup已打开之后加载,所以我不能依靠跟踪它们的打开顺序。

感谢您的任何帮助。

它看起来像新的VisualTreeHelper.GetOpenPopups调用返回打开Popup s从底部到顶部(或最近最近到最近打开?)的顺序。所以这就是我所需要的。

发布此答案以防其他人遇到同一问题。