0

我有一个弹出窗口的用户控件(它比用户控件大) 现在我想在用户单击屏幕的另一部分时隐藏弹出窗口。(标准组合框行为)我该怎么做?我试图听事件pointer_click,我可以得到坐标但是很难手动检查用户是否点击了弹出窗口(也许有办法检查那个坐标上的控件是什么?)

提前致谢

4

2 回答 2

1

If this a WinRT app then simply

var popup = new Popup();
popup.IsLightDismissEnabled = true;

If normal xaml then why not dismiss as soon as you lose focus?

于 2012-08-23T13:00:16.300 回答
0

您有几种可能性: - 使用 VisualTree.Hittest 方法获取该点的所有控件:如果结果不包含弹出窗口,则隐藏它 - 如果您有发送者对象(或 RoutedEventArgs 对象),您可以使用 VisualTree 进行查找对于弹出窗口。(rekursiv) 如果你没有找到它 -> 隐藏它

于 2012-08-23T13:11:44.840 回答