EventSetter

在样式中,可以通过使用 EventSetter 在标记中包括某个预先声明的 XAML 事件处理语法。 在应用样式时,所引用的处理程序会添加到带样式的实例中。 只能针对路由事件声明 EventSetter 下面是一个示例。 请注意,此处引用的 b1SetColor 方法位于代码隐藏文件中。
1.xaml
<StackPanel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="SDKSample.EventOvw2" Name="dpanel2" Initialized="PrimeHandledToo" > <StackPanel.Resources> <Style TargetType="{x:Type Button}"> <EventSetter Event="Click" Handler="b1SetColor"/> </Style> </StackPanel.Resources> <Button>Click me</Button> <Button Name="ThisButton" Click="HandleThis"> Raise event, handle it, use handled=true handler to get it anyway. </Button> </StackPanel>
2.后台代码

void b1SetColor(object sender, RoutedEventArgs args)
{
//logic to handle the Click event

}
void HandleThis(object sender, RoutedEventArgs args)
{
//logic to handle the Click event

}

 

这样做的好处在于,样式有可能包含大量可应用于应用程序中任何按钮的其他信息,让 EventSetter 成为该样式的一部分甚至可以提高代码在标记级别的重用率。 而且,EventSetter 还进一步从通用的应用程序和页面标记中提取处理程序方法的名称。

另一个将 WPF 的路由事件和动画功能结合在一起的专用语法是 EventTrigger 与 EventSetter 一样,只有路由事件可以用于 EventTrigger。通常将EventTrigger 声明为样式的一部分,但是还可以在页面级元素上将 EventTrigger 声明为 Triggers 集合的一部分或者在 ControlTemplate 中对其进行声明。使用 EventTrigger,可以指定当路由事件到达其路由中的某个元素(这个元素针对该事件声明了 EventTrigger)时将运行 Storyboard 与只是处理事件并且会导致它启动现有演示图板相比,EventTrigger 的好处在于,EventTrigger 对演示图板及其运行时行为提供更好的控制。有关更多信息,请参见如何:在演示图板启动之后使用事件触发器来控制演示图板

-- 转自 MSDN 路由事件概述




转载于:https://www.cnblogs.com/Plantastic/archive/2013/05/01/3053435.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值