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



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

提前感谢

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

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

如果是正常的xaml,那么为什么不在你失去焦点时立即消失呢?

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

最新更新