在WPF中,有一种方法可以将特定类型的事件设置为同一类型的所有控件。例如,我正在尝试在TextBlock类型的所有控件上设置MouseLeftButtonDown事件。这是我试图做的,这显然是错误的:
<Style TargetType="{x:Type TextBlock}">
<Setter Property="MouseLeftButtonDown" Value="TextBlock_LeftClick"/>
</Style>
有没有办法可以做到这一点?
答案 0 :(得分:6)
是的,有一种方法,您可以使用EventSetter
中的Style
属性为所有应用了该样式的EventHandler
设置Elements
示例:
<Style TargetType="{x:Type TextBlock}">
<EventSetter Event="MouseLeftButtonDown" Handler="TextBlock_LeftClick" />
</Style>
答案 1 :(得分:4)
您可以使用WPF EventManager
在单个语句中执行此操作EventManager.RegisterClassHandler(typeof(Hyperlink),
Hyperlink.ClickEvent,
new RoutedEventHandler(this.OnHyperlinkClick));