当前位置: 首页 > news >正文

第三章-路由事件

路由事件: 冒泡事件(从自己开始)、隧道时间(预览事件preview开头,从根开始开始)、直接事件

 事件的分类:
作用: 生命周期时间
输入事件
手写笔事件
触控事件

 

一、冒泡事件

    <Grid><StackPanel MouseLeftButtonDown="StackPanel_MouseLeftButtonDown"><Border Background="Red" Margin="30"Width="130" Height="130" MouseLeftButtonDown="Border_MouseLeftButtonDown"></Border></StackPanel></Grid>
    private void Border_MouseLeftButtonDown(object sender, MouseButtonEventArgs e){MessageBox.Show("Boder");e.Handled = true;//拦截,不让事件继续往上抛
    }private void StackPanel_MouseLeftButtonDown(object sender, MouseButtonEventArgs e){MessageBox.Show("Stack");}

  点击Border后,先弹出"Border"对话框后又弹出"Stack"对话框

  点击StackPanel后,弹出"Stack"对话框

 

二、隧道事件

 <Grid><StackPanel PreviewMouseDown="StackPanel_PreviewMouseDown"><Border Background="Red" Margin="30"Width="130" Height="130" PreviewMouseDown="Border_PreviewMouseDown"></Border></StackPanel></Grid>
  private void StackPanel_PreviewMouseDown(object sender, MouseButtonEventArgs e){MessageBox.Show("StackPanel");e.Handled = true;//拦截}private void Border_PreviewMouseDown(object sender, MouseButtonEventArgs e){MessageBox.Show("Boder");}

  点击StackPanel后,先弹出"Stack"对话框后又弹出"Border"对话框

  点击Border后,弹出"Border"对话框

 

三、鼠标事件

    <!--鼠标移动时,显示鼠标窗体当前坐标--><!--鼠标按下时显示坐标,放开则不显示--><Grid x:Name="grid" MouseMove="Grid_MouseMove"MouseDown="grid_MouseDown"MouseUp="grid_MouseUp"><TextBlock x:Name="txtPoint" Foreground="Black"></TextBlock></Grid>

可在鼠标按下时加入鼠标捕获功能Mouse.Capture((UIElement(sender)))   释放时可释放捕捉Mouse.Capture(null)

      private bool IsShowPoint = false;//鼠标按下事件private void Grid_MouseMove(object sender, MouseEventArgs e){if (IsShowPoint){Point point = e.GetPosition(grid);txtPoint.Text = $"当前坐标为({point.X},{point.Y})";}}//鼠标按下事件private void grid_MouseDown(object sender, MouseButtonEventArgs e){IsShowPoint = true;}//鼠标释放事件private void grid_MouseUp(object sender, MouseButtonEventArgs e){IsShowPoint = false;}

 

http://www.jsqmd.com/news/87013/

相关文章:

  • Nacos 2.4.2命名空间管理异常终极解决方案
  • 2025年比较好的包装PE袋/自封袋PE袋TOP品牌厂家排行榜 - 行业平台推荐
  • MySQL索引(三):字符串索引优化之前缀索引
  • 基于vue的校园论坛管理系统的设计与实现_1xs8770k_springboot php python nodejs
  • Apple Color Emoji 在 Linux 系统中的终极配置指南
  • 2025年市面上诚信的尘埃粒子检测仪供应厂家排名,便携式粒子计数器/尘埃粒子计数器在线监测系统/尘埃粒子检测仪源头厂家哪家权威 - 品牌推荐师
  • 如何用Nunchaku量化模型让普通显卡也能跑顶尖AI绘图
  • 2025年口碑好的浆液泵耐磨涂层/脱硫耐磨涂层行业内知名厂家排行榜 - 行业平台推荐
  • 如何在5分钟内掌握text-generation-webui模型下载工具
  • 2025年靠谱的窑炉风机/风机用户好评厂家排行 - 行业平台推荐
  • 基于vue的演唱会门票售票预约系统_y425v64z_springboot php python nodejs
  • 2025年靠谱的45#模具钢厂家推荐及选择参考 - 品牌宣传支持者
  • 基于vue的线上商城购物系统_q90ol4sn_springboot php python nodejs
  • CentOS-Stream-10 系统安装之SELINUX关闭
  • Qwen3-VL-235B-Instruct技术揭秘:多模态智能的三大核心突破
  • 基于vue的线上超市购物系统_e7n4m44y_springboot php python nodejs
  • AutoGPT代码生成能力评测:能否替代程序员?
  • BloodHound图论安全分析实战:从权限迷宫到清晰攻击路径
  • Next.js缓存优化实战:从根源解决构建不一致的5步诊断法
  • 突破性能瓶颈:Flash-Attention在AMD GPU上的完整部署指南与实战优化
  • 计算机体系结构经典教材:量化研究方法第六版资源详解
  • SeedVR-3B视频修复实战指南:从模糊到高清的一键蜕变
  • Neovim代码补全终极指南:从新手到专家的快速上手教程
  • 28、Ubuntu 系统音频处理与设备使用全攻略
  • 我为什么当博主
  • Windows 10/11 HEVC解码插件终极安装指南
  • 微服务灰度发布实战:从理论到落地的完整解决方案
  • 5步突破Ocelot中间件扩展瓶颈:从架构设计到生产部署
  • DFT + SUMO + GALORE = DFT模拟实验光谱效果
  • Typst文件嵌入深度指南:告别重复代码的5大核心技巧