2011-01-06 51 views
1

在Silverlight 4中可以找出哪個控件正在被點擊嗎? 所有UIElements上有一個屬性叫做IsHitTestVisible,但是我無法在控件上執行一次hittest。在silverlight中執行命中測試

回答

1

您可以通過MouseLeftButtonDownMouseLeftButtonUp事件(或等效的RightButton事件)發現鼠標點擊。

這些冒泡事件意味着如果它們沒有被處理,但實際元素點擊事件將觸發含有元素,直到根項目。

因此,對於很多簡單的元素,您可以向包含元素添加處理程序,並使用的OriginalSource屬性來確定實際生成消息的元素。

但是,您使用「控制」這個詞,它有些用來表示其他用戶更嚴格地使用UI元素來引用諸如ListBox之類的東西。在後一種情況下,這些控件可以處理鼠標事件,因此它們不會再冒泡。

即使是已處理的內容,您仍然可以在包含UIElement上使用AddHandler獲得LeftButton事件。這仍然會讓你發現你感興趣的實際控制問題,因爲OriginalSource將成爲控制的一部分,因此是控制的後代。