4

在 WPF 中有一种方法可以为相同类型的所有控件设置特定类型的事件。例如,我试图在 TextBlock 类型的所有控件上设置 MouseLeftButtonDown 事件。这是我试图做的显然是错误的:

<Style TargetType="{x:Type TextBlock}">
    <Setter Property="MouseLeftButtonDown" Value="TextBlock_LeftClick"/>
</Style>

有没有办法做到这一点?

4

2 回答 2

7

是的,有一种方法,您可以使用中的EventSetter属性为所有应用了该样式的Style人设置一个EventHandlerElements

例子:

<Style TargetType="{x:Type TextBlock}">
    <EventSetter Event="MouseLeftButtonDown" Handler="TextBlock_LeftClick" />
</Style>
于 2013-02-24T20:14:39.167 回答
4

您可以使用 WPF EventManager 在单个语句中执行此操作

EventManager.RegisterClassHandler(typeof(Hyperlink), 
                                  Hyperlink.ClickEvent, 
                                 new RoutedEventHandler(this.OnHyperlinkClick));
于 2015-06-06T18:43:26.203 回答