|
|
1
129
来自编程WPF-克里斯·塞尔斯和伊恩·格里菲斯
|
|
|
2
9
我发现这篇博客文章在描述差异方面非常有用: http://joshsmithonwpf.wordpress.com/2007/06/22/overview-of-routed-events-in-wpf/
|
|
|
3
3
基本上,这是同一事件,但发生在主要事件之前。它们的存在使您可以侦听这些类型的事件,而不会在这些事件发生时干扰控件的正常行为。 例如,当你点击或鼠标点击时,按钮会做一些事情。如果你自己处理这些事件,你必须确保你做了同样的事情,否则你的按钮不会做同样的事情。预览事件在同一时间线上为您提供一个事件,而不必担心会干扰现有功能。 这在处理自定义样式/触发器/控件模板时特别有用。当您开始覆盖控件外观/行为时。 因此,在您的控制下,在OnKeyDown事件中完成您想要的主要工作,并将预览事件留给其他人使用,这就是我如何处理它们的方式。 |
|
|
4
3
这种差异与路由事件有关,这是WPF实现其事件处理策略的方式。标准事件名称(如KeyDown等)意味着冒泡路由策略。带有“Preview”(即PreviewKeyDown等)的前缀表示隧道路由策略。您可以更详细地阅读这些策略 here . 基本上,当调用WPF中的事件时,它首先从可视化树中最顶端的元素向下移动到调用该事件的元素,最后向上返回。在树下的过程中,您将遇到PreviewKeyDown事件,在回程中,您将遇到KeyDown事件,顺序如下。 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |
|
|
Barta · WPF MVVM不更新视图 1 年前 |
|
|
Denis Ivanov · WPF控件在属性更改时不会更新 1 年前 |
|
|
codymanix · WPF:TextBlock周围可见小边框? 1 年前 |
|
|
Nostromo · 来自背景对象的工具提示 1 年前 |
|
|
Nuvolari · 从可观测集合添加/删除时出现对象处理异常 2 年前 |
|
|
CCarter · 只能在设计器中DependencyObject的DependencyProperty上设置显示“Binding”的WPF ICommand DependencyProperties[重复] 2 年前 |
|
|
Thern · 在UI线程(WPF)上的void方法中调用异步函数 2 年前 |