首页 > 其他分享 >自定义路由事件

自定义路由事件

时间:2024-01-28 15:45:03浏览次数:26  
标签:控件 自定义 args AddHandler 事件 路由

路由事件相比.NET事件的优点

  1. 为在最合适的位置编写紧凑的、组织良好的用于处理事件的代码提供了灵活性。
  2. Xaml无限套娃的树状结构,可以简单的在逻辑树上堆砌出定制按钮,而不必像Winform那样,动不动就要大费周章的自定义控件,比如带文字和图片的按钮,这时候,路由事件支持在父级控件上解耦的订阅内部的全部控件的事件,减少了代码量。
<Grid x:Name="grid" MouseDown="Grid_MouseDown" ButtonBase.Click="grid_Click">
    <StackPanel>
        <RadioButton Content="RadioButton" />
        <Button Content="Button" />
        <CheckBox Content="CheckBox" />
    </StackPanel>
</Grid>
grid.AddHandler(MouseDownEvent, new MouseButtonEventHandler((sender, args) =>
{

}));
grid.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler((sender, args) =>
{

}));
  1. 如果路由事件自身拥有,直接写事件名即可,如果是自己没有的,或者附加路由事件,要加上类名。
  2. 只要背后的静态RoutedEvent是同一个,都可以被订阅,但不是所有的,要沿着树,所有的不合理,不然解析e要好多次。
  3. Tag,或 Name区分。

标签:控件,自定义,args,AddHandler,事件,路由
From: https://www.cnblogs.com/euvio/p/17992933

相关文章

  • Vue模板语法——v-on 事件绑定
    一、v-on事件绑定v-on指令用于绑定事件v-on用法转=>最底层的技术渣--Vue基础语法之v-on转=>一瓶怡宝矿泉水--v-on指令直接绑定事件:注意:绑定的事件是对应的方法不是定义在data里面,而是定义在vue实例的methods里绑定的函数可直接绑定函数名——fun,也可以直接调用......
  • Vue模板语法——键盘事件修饰符
    一、键盘修饰符在JavaScript事件中除了前面所说的事件,还有键盘事件,也经常需要监测常见的键值。在Vue中允许v-on在监听键盘事件时添加关键修饰符。记住所有的keyCode比较困难,所以Vue为最常用的键盘事件提供了别名:enter:回车键tab:制表键delete:含delete和backspace键esc:返回键......
  • Vue模板语法——事件修饰符
    一、事件处理如果需要在内联语句处理器中访问原生DOM事件。可以使用特殊变量$event,把它传入到methods中的方法中。在Vue中,事件修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多的精力专注于程序的逻辑处理。在Vue中事件修饰符主要有:......
  • [office] Excel中2010版使用自定义名称简化计算公式的操作技巧
    假设企业申报工资基数为员工的基本工资,用户可将“基本工资”所在单元格区域命名为“申报工资基数”,今天,小编就教大家在Excel中2010版使用自定义名称简化计算公式的操作技巧。Excel中2010版使用自定义名称简化计算公式的操作步骤选择“定义名称”选项,在“员工基本信......
  • 基于事件驱动的机制
    目录简介应用场景事件驱动编程与回调函数有何不同简介在Linux下,基于事件驱动的机制主要是通过内核实现,主要涉及到消息传递机制。当硬件设备发出中断时,Linux内核会将触发事件的信息转发到对应的进程上,从而使用户态的应用程序可以响应中断信号,提高程序的响应能力。此外,Linux还提......
  • div穿透事件(point-events)
    需求背景:需要通过穿透div对下层的div进行点击或者鼠标滑动事件1.上层div无事件执行,只需在上层元素的样式里添加:point-events:none 2.上层div的某个子元素里有事件执行,想穿透其他没有事件的子元素执行下层div的事件①给上层最外层元素添加:point-events:none②给有事件......
  • 自定义对象比较器,结果失真怎么办?
    如果自定义对象比较器的结果失真,那么首先需要确认比较器的compare方法是否正确实现。在Java中,compare方法应该返回一个负整数、零或正整数,分别表示第一个参数小于、等于或大于第二个参数。例如,如果我们正在比较两个Student对象,我们可能会根据他们的身高或年龄来排序。但是,如果我......
  • SpringBoot启动过程中发布的事件
    springboot启动过程中会发布的事件(启动类的run()方法执行时)ApplicationStartingEvent:应用运行开始事件SpringBoot运行run()方法未进行任务操作时先发布此事件ApplicationEnvironmentPreparedEvent:Environment准备完成事件在Environement准备完成且应用上下文context......
  • 在 `tkinter` 中,我们经常使用匿名函数(也称为 `lambda` 函数)来处理按钮点击等事件的回
    在`tkinter`中,我们经常使用匿名函数(也称为`lambda`函数)来处理按钮点击等事件的回调函数¹²。当你使用`tkinter`的`.bind()`或者`Button`的`command`参数来绑定一个函数时,`tkinter`会自动传递一个事件对象给这个函数¹。如果你的函数需要接受额外的参数,或者你不希望......
  • MFC 菜单路由事件,按钮可用不可用
    点击b会切换a可用状态:添加Menu选项a对应IDID_DEMO_A,b对应IDID_DEMO_B。弹式菜单无法编辑ID。▲右键添加事件处理程序▲路由传递路径frame给到view如果view处理好了,就返回给frame;如果没处理的话,view会给这个路由消息给doc,如果doc没有处理,再返回给......