c#中PreviewMouseDown和MouseDown有什么区别?

2025-03-20 13:17:25
推荐回答(4个)
回答(1):

PreviewMouseDown 对应的冒泡事件为 MouseDown 。两者区别是,冒泡关系(或叫触发的先后顺序)。当鼠标按下,先触发PreviewMouseDown,然后,再触发MouseDown。一般情况下,两者没什么区别,通常我们随便选择一个来用都可以(一般选择MouseDown)。由于两者是冒泡关系,可以在PreviewMouseDown中阻止MouseDown的触发(或叫阻止事件传递,或叫停止冒泡),所以可以将PreviewMouseDown视为MouseDown的过滤器(或叫必经之路),通常你可以在PreviewMouseDown中做一些预先处理,为MouseDown做铺垫。或者做一些逻辑判断,以决定是否要触发MouseDown,等等之类,看你的需要而定。

回答(2):

PreviewMouseDown是隧道事件,MouseDown是冒泡事件;
简而言之,一个由上向下引发,一个由下向上冒泡;

回答(3):

PreviewMouseDown是隧道事件
MouseDown是冒泡事件
简而言之,一个由上往下依次引发,一个由下往上引发;
具体请搜索“WPF路由事件”

回答(4):

PreviewMouseDown是隧道事件,MouseDown是冒泡事件;简而言之,一个由上向下引发,一个由下向上冒泡;