1

有没有办法在页面或用户控件级别捕获 MouseLeftButtonDown(或其他鼠标事件),然后能够确定实际单击了哪个子控件?

4

1 回答 1

2

是的。在页面或其他 UI 根上设置您的处理程序,然后使用以下方法确定在该处理程序中单击了什么。

List<UIElement> hits = System.Windows.Media.VisualTreeHelper.FindElementsInHostCoordinates(args.GetPosition(null), startFromControl);

请注意,要“命中”控件有一些要求。一个常见的原因是没有定义背景。控件还可以使用 UIElement.IsHitTestVisible 属性关闭命中测试。

于 2009-02-17T14:09:30.133 回答