#502 – Sender 和RoutedEventArgs.Source的区别(Sender vs. RoutedEventArgs.Source)

但你处理RoutedEvent 或者其子类的的时候,你可以通过RoutedEventArgs.Source 属性来获得事件的来源,同时事件处理函数同样也有一个sender 参数来指出事件的来源。

在路由事件中,RoutedEventArgs.Source 是引发事件的控件的引用,而sender 是事件处理程序拥有者的引用。

在下面的例子中,RoutedEventArgs.SourceButton 类型的引用。而sender 则是StackPanel 类型的引用,因为它拥有Click 事件处理函数。

<StackPanel ButtonBase.Click="Button_Click">
    <Button Content="Keaton" />
    <Button Content="Chaplin" />
    <Button Content="Arbuckle" />
</StackPanel>
private void Button_Click(object sender, RoutedEventArgs e)
{
    Button b = e.Source as Button;
    MessageBox.Show(string.Format("You clicked on {0} button, sender is of type {1}",
        b.Content, sender.GetType().ToString()));
}

原文地址:https://wpf.2000things.com/2012/02/27/502-sender-vs-routedeventargs-source/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值