關於自定義空間阻止事件冒泡的解決方案

2021-08-11 05:47:04 字數 693 閱讀 4591

最近在利用wpf做程式的客戶端,其中有乙個頁面叫做dashboard,裡面有很多個自定義的usercontrol的groupbox。本來想通過雙擊每乙個小groupbox的title,跳轉到另外乙個tabcontrol裡面的tabitem。可是一直沒有辦法實現跳轉。

經過查詢發現是因為雙擊自定義的usercontrol的時候會處罰所在的父控制項tabitem,以及tabcontrol的mousedoubleclick事件,導致剛剛做完的跳轉,又馬上跳轉會到當前的tabitem。

一開始度娘上說,可以通過處理e.handle來解決

void tabitem_mousedoubleclick(object sender, mousebuttoneventargs e)

}

引用自但是使用後還是不行,最後通過這篇文章找到答案

解決摘要:

當自定義控制項的主容器沒有設定背景色(背景透明)時,在自定義控制項主容器上的移動 不會觸發mousedoubleclick,然後進入使用者控制項的子控制項時,才會觸發mousedoubleclick,然後往上冒泡,這樣會觸發多次,並且通過e.handled無法阻止冒泡,並且e.originalsource 始終是指代使用者控制項。但是設定背景後,情況就是只要進入自定義控制項,就只冒泡一次,在子控制項之間切換不會再次冒泡

關於Flex中自定義事件

事件是乙個非常有用的功能,通常用於資訊傳遞互動大大提高程式編寫的靈活性。在高階語言中都會整合這方面特性 flex也不例外幾乎所有控制項中都整合了大量的事件,如果button的click事件等。但實際應用中控制項自有的事件是不能滿真實需要的,特別在自己編寫自定義控制項時,自定義控制項內部資訊的改變如何...

關於flex自定義事件的理解

你可以這樣理解事件類 1.第一步,首先忘記你學到的任何關於事件類的知識,不知道有這麼一回事,然後只知道flash有個內建類,名叫event 2.第二步,來看這個類有什麼 它有很多很多常數屬性,比如complete,close,clear等等。那麼,這些引數幹什麼用的呢?很明確的告訴你,flash已經...

flex的自定義事件

package event override public function clone event 這個就是乙個自定義控制項,它和傳統的區別在於可以自己傳送乙個引數過去,比如兩個介面的引數傳遞。比如這樣的乙個例子,當datagrid的某條記錄雙擊之後,傳遞selecteditem object到另...