2014-03-24 25 views
1

我有嵌入在另一個控制一個用戶控件。這兩個控件都有他們的mouseup事件掛鉤,但是當我按下usercontrol時,會自動激發其父控件mouseup事件。我怎樣才能阻止呢?試圖撥打孩子的事件,而不調用父母事件

+0

檢查鼠標是否覆蓋子元素與否。 –

+0

可以請您詳細說明嗎? –

回答

4

MouseUp事件具有冒泡路由策略,這意味着從後代它將冒泡至祖先。要停止傳播,慶祝活動在孩子的事件處理程序處理:

e.Handled = true; 

您可以瞭解更多關於event routing strategies on MSDN

+0

謝謝你的回答,它現在工作得很好。 –

0

我建議你閱讀的Routed Eventings的基礎,以獲取有關三項賽在WPF中是如何工作的一個更好的命令。你可以檢查這個MSDN鏈接進一步閱讀。

最好的辦法是確定OriginalSource(發起事件的原始對象),將它轉換爲您的子類型,然後繼續執行您的邏輯。

如:

void Handler(object obj, RoutedEventArgs e) 
    { 
     YourChildControl c = e.OriginalSource as YourChildControl; 
     if (c != null) 
     { 
      //this will execute when 
      //do whatever you wanted to do. 
     } 
     e.Handled = false; 
    } 
相關問題