[問題] wpf路由事件的一些問題
剛入門不久,寫了幾個小程式就碰上路由事件的處理
MSDN看完還是有些地方不太明白
MSDN上寫說路由事件的策略分為三種,其中direct就是winform使用的事件模式
只有控制項本身會執行此事件,不會繼續往父項跑,如果我想讓一個控制項使用
策略為direct的事件,是否得自己宣告一個新事件,因為內建事件的策略好像都
是bubble,也找不到可以對單一事件策略修改的方法
以上問題的產生是因為我寫了一個程式,可以用滑鼠直接對程式的window進行拖拉放大
等動作,但因為路由事件的關係,window下的控制項都吃到MouseDown、MouseMove這些
事件,變得無法正常使用了。我嘗試用e.Handled=true來擋掉window.MouseDown的執行,
但是一個控制項就得寫一次,而且有些控制項的MouseDown還不會觸發,變得擋不住(像
textBox就只能用previewMouseDown才能觸發),如果控制項一多,一定會變得很複雜
想請問是否有方法可以讓事件只讓控制項本身使用,底下的成員不會去觸發?
而不是得讓底下成員一個一個去擋bubble
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.238.107
※ 編輯: Beramode 來自: 123.204.238.107 (11/27 10:22)
※ 編輯: Beramode 來自: 123.204.238.107 (11/27 10:32)
→
11/27 12:17, , 1F
11/27 12:17, 1F
→
11/27 12:18, , 2F
11/27 12:18, 2F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章