2011-09-26 31 views
1

我有兩個網格相互重疊,頂層在ScrollViewer中。問題是底層有點擊事件,並且它們不會被ScrollViewer觸發。如何讓我的ScrollViewer通過點擊事件到它後面的控件?

有沒有辦法讓ScrollViewer將點擊事件傳遞給它後面的控件?

<Grid> 
    <local:MyBackgroundControlWithClickEvents /> 
    <ScrollViewer> 
     <local:MyForegroundControlWithClickEvents /> 
    </ScrollViewer> 
</Grid> 

回答

2

Click事件bubble up the visual tree to the root,因爲你的控件不是ScrollViewer的父母,也不會接收這些事件。我知道他們可能會在屏幕上重疊,但就視覺樹而言,他們是兄弟姐妹,而不是父母/孩子。

爲了完成這項工作,您可以將MyBackgroundControlWithClickEvents更改爲ContentControl並在其中託管ScrollViewer

+0

我的問題是兩個控件都是兩種不同的尺寸。後臺使用可單擊的單元格和標題(不應滾動)繪製網格,並且前景控件繪製可滾動的網格項目。這兩個網格都是動態構建的。 – Rachel

+0

謝謝你提醒我他們是兄弟姐妹,但不是父母/孩子。我可能會重新設計我的設計來做其他事情。 – Rachel

+0

是的,我擔心你將不得不重新設計。你*可以*創建一些你自己的'魔法',添加一個父容器,將事件傳遞給你的兄弟控制。 – ColinE

相關問題