2011-01-06 54 views
1

在Silverlight 4中可以找出哪个控件正在被点击吗? 所有UIElements上有一个属性叫做IsHitTestVisible,但是我无法在控件上执行一次hittest。在silverlight中执行命中测试

回答

1

您可以通过MouseLeftButtonDownMouseLeftButtonUp事件(或等效的RightButton事件)发现鼠标点击。

这些冒泡事件意味着如果它们没有被处理,但实际元素点击事件将触发含有元素,直到根项目。

因此,对于很多简单的元素,您可以向包含元素添加处理程序,并使用的OriginalSource属性来确定实际生成消息的元素。

但是,您使用“控制”这个词,它有些用来表示其他用户更严格地使用UI元素来引用诸如ListBox之类的东西。在后一种情况下,这些控件可以处理鼠标事件,因此它们不会再冒泡。

即使是已处理的内容,您仍然可以在包含UIElement上使用AddHandler获得LeftButton事件。这仍然会让你发现你感兴趣的实际控制问题,因为OriginalSource将成为控制的一部分,因此是控制的后代。