我處理用戶輸入在WPF應用程序的孫子,與RoutedEvents
如MouseDown
,MouseMove
等。我已經有了一個良好的抓地力的隧道和MSDN's Routed Events Overview冒泡的工作,但我已經運行成爲一個冒泡事件的問題。獲取RoutedEvent來源爲處理器
作爲MouseDown
事件冒泡到一個處理程序,MouseButtonEventArgs.Source
給我的事件來自當前元素的孩子。有沒有辦法讓那個孩子認爲元素?我在想MouseButtonEventArgs.Source.Source
在這種情況下,我想盡可能將我的輸入處理放在我的應用程序中,但仍然獲取有關事件來自的初始元素的信息。
下面是一個例子:這裏點擊了名爲Grandchild的Grid
,我想要處理Parent_MouseDown()
中的事件。然而,在這種情況下,我得到的關於事件源的信息大概是名爲Child的grid
。有沒有辦法從父母那裏獲得有關孫子的信息?
<Grid x:Name="Parent" MouseDown="Parent_MouseDown">
<Grid x:Name="Child" MouseDown="Child_MouseDown">
<Grid x:Name="Grandchild" MouseDown="Grandchild_MouseDown">
</Grid>
</Grid>
</Grid>
請注意,這個例子是簡化的,因爲在我的應用程序中這些元素是不同的類,並且駐留在不同的文件中。提前致謝!
作爲@ RV1987建議,如果鼠標正確地在其上盤旋,則路由事件參數應該已經指向'GrandChild'作爲'OriginalSource'。 –