根据指针的位置检查单击了哪个控件

时间:2012-08-23 12:42:25

标签: wpf xaml windows-8

我有用户控件有一个弹出窗口(它比用户控件大)现在我想在用户点击屏幕的另一部分时隐藏弹出窗口。 (标准组合框行为)我怎么能这样做?我已经尝试过监听事件pointer_click并且我可以获得坐标但是很难手动检查用户是否点击了弹出窗口(可能有办法检查该坐标上的控件是什么?)

提前致谢

2 个答案:

答案 0 :(得分:1)

如果这是一个WinRT应用程序,那么只需

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

如果正常的xaml那么为什么不在失去焦点后立即解雇?

答案 1 :(得分:0)

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