WPF中路由事件知识梳理

本文详细介绍了WPF中的路由事件,包括路由事件的传播机制、设置侦听器、自定义路由事件的步骤以及附加路由事件的概念。通过实例演示了如何在WPF中设置路由事件侦听器和自定义路由事件,帮助开发者深入理解WPF事件处理机制。
摘要由CSDN通过智能技术生成

1.路由
起点与终点间有若干个节点,从起点出发后经过每个中转站都要做出选择,最终以正确(最短或者最快)的路劲到达终点。

2.路由事件的产生
和依赖属性、附加属性一样,从节省资源的角度,从事件(消息通知方式)进行了升级。
与依赖属性一样,可以通过传统的方式使用路由事件,但具有更强的传播能力----可以在元素叔向上冒泡,和向下隧道传播,并且沿着传播路径被事件处理器处理。
路由事件由只读的静态字段表示,在静态构造函数中注册,并通过标准的.NET事件进行封装。

3.设置路由事件侦听器
所有的UI控件都有AddHandler方法用于添加侦听器和绑定事件处理器
用法:

this.UIName.AddHandler(UI.XEvent,new RoutedEventHandler(fuantion));

private void fuantion(object sender,RoutedEventArgs e){
   ...}

这时候的sender为拥有侦听器的控件,而不是消息的产生者。要查看源头使用(e.OriginalSource as FrameworkElement).Name

Demo:设置UI 一个Grid 的含一个Grid 含两个Canvas含两个button

<Grid x:Name="gritRoot" Background="Lime">
        <Grid x:Name="gritA"  Margin="10" Background="Blue">
            <Grid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>    
            
        
        <Canvas x:Name="canvasLest" Grid.Column="0" Background="Red" Margin="10">
                <Button x:Name="buttonLeft" Content="Left" Width="40" Height="100" Margin="10"/>
            </Canvas>
        <Canvas x:Name="canvasRight" Grid.Column="1" Background="Yellow" Margin="10">
                <Button x:Name="buttonRight" Content="Right" Width="40" Height="100" Margin="10"/>
            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值