如何判断哪个Silverlight Popup(或ChildWindow)是最顶层的?
问题描述:
我正在尝试在Silverlight应用程序中进行测试,以查找鼠标光标下的元素。如何判断哪个Silverlight Popup(或ChildWindow)是最顶层的?
通常VisualTreeHelper.FindElementsInHostCoordinates
适用于此。如果打开了Popup
,我需要将弹出窗口传递给命中测试方法。如果有多个弹出窗口打开时,我需要确定正确的(最顶层)弹出的传递。
有没有可靠的方法来确定哪些Popup
是最上面的?我正在做一个装配,可能会在Popup
已打开之后加载,所以我不能依靠跟踪它们的打开顺序。
感谢您的任何帮助。
答
它看起来像新的VisualTreeHelper.GetOpenPopups
调用返回打开Popup
s从底部到顶部(或最近最近到最近打开?)的顺序。所以这就是我所需要的。
发布此答案以防其他人遇到同一问题。