WPF部分控件没有点击事件,点击,指的是鼠标按下,然后抬起,形成一次点击,这里写了个类,实现了点击事件如下

class ClickEventAction{static List<ClickEventAction> clickEventActions = new List<ClickEventAction>();public static void AddClickEventAction(FrameworkElement frameworkElement, Action<object> action = null){if (frameworkElement == null) return;clickEventActions.Add(new ClickEventAction(frameworkElement, action));}public static void RemoveClickEventAction(FrameworkElement frameworkElement){foreach (ClickEventAction item in clickEventActions){if(item.FrameworkElement == frameworkElement){item.FrameworkElement.MouseLeave -= item.UIElement_MouseLeave;item.FrameworkElement.MouseLeftButtonUp -= item.UIElement_MouseLeftButtonUp;item.FrameworkElement.MouseLeftButtonDown -= item.UIElement_MouseLeftButtonDown;item.FrameworkElement.MouseEnter -= item.FrameworkElement_MouseEnter;}}}public ClickEventAction(FrameworkElement frameworkElement, Action<object> action = null){FrameworkElement = frameworkElement;Action = action;frameworkElement.MouseLeftButtonDown += UIElement_MouseLeftButtonDown;frameworkElement.MouseLeftButtonUp += UIElement_MouseLeftButtonUp;frameworkElement.MouseLeave += UIElement_MouseLeave;frameworkElement.MouseEnter += FrameworkElement_MouseEnter;}private Brush background = null;public void FrameworkElement_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e){}private bool isMouseDown = false;public void UIElement_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e){isMouseDown = false;}public void UIElement_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e){if (isMouseDown)Action?.Invoke(FrameworkElement);isMouseDown = false;}public void UIElement_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e){isMouseDown = true;}public Action<object> Action { get; set; }public FrameworkElement FrameworkElement { get; set; }}

使用方式,后台调用该类添加点击事件,Click为响应事件的方法

    ClickEventAction.AddClickEventAction(TableBorder, Click);private void Click(object obj){if(obj is FrameworkElement framework){switch (framework.Name){default:break;}}}

WPF控件自定义点击事件相关推荐

  1. WPF 控件样式及样式事件设置

    实例下载:WPF控件样式及样式事件设置-C#文档类资源-CSDN下载 封装用户控件实例:图片选择Checkbox(用户控件)-C#文档类资源-CSDN下载 1.直接在代码中设置控件样式(例:设置按键圆 ...

  2. WPF控件自定义事件

    第一步:定义一个委托,委托属于一个定义,是和类.接口类似的,通常放在外部 /// <summary>/// 轻提示事件委托/// </summary>/// <param ...

  3. 日期控件的点击事件,在js中添加callback属性,不在html中直接添加

    总结如下: 1. callback的data是点击事件(事件控件)完成后的回调的日期 2. return true后才能改变值,return false不能改变值 3. \ 是转义,因为在" ...

  4. Button控件的点击事件

    Java的代码 主要重点: findViewById(); OnClickListener() 1 package com.example.admin.myapplication; 2 3 impor ...

  5. Kotlin写界面时诸多控件的点击事件

    界面中控件较多的话,每个控件都设置setOnClickListener(this)是很麻烦的,为此抽出了一个Context的扩展类: fun Context.setViewClick(listener ...

  6. WPF 控件自定义模板之:圆形进度条

    ▪ 前言 项目开发需要,需要做一个圆形的进度条,但是发现 WPF 自带的进度条控件 ProgressBar 无法直接变成圆形,经过不停的Baidu.Google,终于找到了基于 ProgressBar ...

  7. winform代码触发控件的点击事件

    有些时候我们需要自动触发窗体某个控件的事件,这时应该怎么做呢,下面一起看一下: 代码实现 比如我们想在窗体的load事件中触发butoon的单击事件 private void Form1_Load(o ...

  8. WPF控件自定义样式(FasControls)

    一.界面预览 转载于:https://www.cnblogs.com/3xiaolonglong/p/11012683.html

  9. WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探

    原文:WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探 最近因为项目需要,开始学习如何使用WPF开发桌面程序.使用WPF一段时间之后,感觉WPF的开发思 ...

最新文章

  1. 熊猫TV直播H5播放器架构探索
  2. 【大数据新手上路】“零基础”系列课程--MySQL 数据整库迁移到 MaxCompute
  3. C语言--结构体与内存对齐准则简单理解
  4. 零基础学python pdf-Python pdf(零基础入门学习Python)V1.0 最新版
  5. J2SE基础夯实系列之正则表达式Java
  6. 如何使用U盘替换光驱引导部署WES7系统
  7. 2021非常全的接口测试面试题及参考答案
  8. 本特利探头330104-00-02-10-02-00
  9. RS485串口模块详解RS232、RS485、RS485
  10. 字母缩写对应的世界各国家及其官方语言java工具类
  11. 2021年茶艺师(中级)考试报名及茶艺师(中级)免费试题
  12. ant-design-pro跨域问题
  13. android+路由器+名称,手机更改路由器名称
  14. linux 系统安全以及应用
  15. keil5中GD32450i-EVAL创建项目工程
  16. ArcMap 小知识(3):在ArcGIS中导出数据时显示“保存对象时出错”
  17. 什么是HTTP长连接、短连接
  18. 2023年Java面试题_MySQL
  19. T6企业管理软件 7.1 - 导入期初应收应付提示“子表关联项过长”
  20. EXCEL 怎么用函数公式计数(Excel函数去重计数 / 去除重复项),不使用透视表

热门文章

  1. seata不支持MySQL8.x正确解决方案
  2. Linux升级python到3.6
  3. 微博关注与粉丝业务场景分析
  4. iview-admin 登录实现
  5. 【附源码】Java计算机毕业设计网上拍卖系统(程序+LW+部署)
  6. 使用计算机来进行翻译属于计算机,【判断题】【判断题】遇到诈骗案件时,只要最后一个关口也就是汇款的那一关节守牢就不会有问题。()...
  7. 密码加密 加盐 Java PBKDF2 密码哈希代码
  8. 公募基金核心生产业务超融合转型实践
  9. 30分钟音频当数据,任何音色零门槛生成,产品免费体验
  10. 一个activity显示另一个activity,LocalActivityManager实例化不是通过ActivityGroup,