我正在浏览WPF概念,我遇到了这些路由事件,依赖项属性和附加事件。 我想我无法理解它们背后的概念以及它们为什么被用来代替.net的方法?
答案 0 :(得分:12)
路由事件使元素树中的不同控件能够对事件做出反应。
例如,如果我们的Window
包含StackPanel
,其中包含Button
并且有人按下按钮上的鼠标键,则会按以下顺序触发事件:
PreviewMouseDown on Window
PreviewMouseDown on StackPanel
PreviewMouseDown on Button
MouseDown on Button
MouseDown on StackPanel
MouseDown on Window
这些“预览”事件使用名为Tunneling
的行为。正常事件Bubble
再次上升。
如果将Handled
的{{1}}属性设置为EventArgs
,隧道和冒泡将停止。隧道或冒泡称为路由策略。
这可以处理各种情况,例如:
true
上将Handled
设置为true
。StackPanel.PreviewMouseDown
)我建议不要研究Attached Events,直到这变得绝对必要。附加事件的场景非常有限。附加事件也是路由事件。