Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有没有办法在页面或用户控件级别捕获 MouseLeftButtonDown(或其他鼠标事件),然后能够确定实际单击了哪个子控件?
是的。在页面或其他 UI 根上设置您的处理程序,然后使用以下方法确定在该处理程序中单击了什么。
List<UIElement> hits = System.Windows.Media.VisualTreeHelper.FindElementsInHostCoordinates(args.GetPosition(null), startFromControl);
请注意,要“命中”控件有一些要求。一个常见的原因是没有定义背景。控件还可以使用 UIElement.IsHitTestVisible 属性关闭命中测试。