2013-02-24 46 views
3

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

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

有没有办法可以做到这一点?

回答

5

是有一种方法,你可以使用EventSetter属性在Style设置EventHandler所有Elements与应用该样式

例子:

<Style TargetType="{x:Type TextBlock}"> 
    <EventSetter Event="MouseLeftButtonDown" Handler="TextBlock_LeftClick" /> 
</Style> 
+0

我用你的方法添加一个鼠标单击事件到一个椭圆但遇到像th是: 'WpfApplication1.App'不包含'Ellipse_LeftClick'的定义,并且没有找到接受'WpfApplication1.App'类型的第一个参数的扩展方法'Ellipse_LeftClick'(您是否缺少using指令或程序集引用? ) – harsini 2015-11-01 08:01:13

3

您可以在一个做到这一点语句使用WPF EventManager

EventManager.RegisterClassHandler(typeof(Hyperlink), 
            Hyperlink.ClickEvent, 
           new RoutedEventHandler(this.OnHyperlinkClick)); 
相关问题