WPF控件自定义点击事件
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控件自定义点击事件相关推荐
- WPF 控件样式及样式事件设置
实例下载:WPF控件样式及样式事件设置-C#文档类资源-CSDN下载 封装用户控件实例:图片选择Checkbox(用户控件)-C#文档类资源-CSDN下载 1.直接在代码中设置控件样式(例:设置按键圆 ...
- WPF控件自定义事件
第一步:定义一个委托,委托属于一个定义,是和类.接口类似的,通常放在外部 /// <summary>/// 轻提示事件委托/// </summary>/// <param ...
- 日期控件的点击事件,在js中添加callback属性,不在html中直接添加
总结如下: 1. callback的data是点击事件(事件控件)完成后的回调的日期 2. return true后才能改变值,return false不能改变值 3. \ 是转义,因为在" ...
- Button控件的点击事件
Java的代码 主要重点: findViewById(); OnClickListener() 1 package com.example.admin.myapplication; 2 3 impor ...
- Kotlin写界面时诸多控件的点击事件
界面中控件较多的话,每个控件都设置setOnClickListener(this)是很麻烦的,为此抽出了一个Context的扩展类: fun Context.setViewClick(listener ...
- WPF 控件自定义模板之:圆形进度条
▪ 前言 项目开发需要,需要做一个圆形的进度条,但是发现 WPF 自带的进度条控件 ProgressBar 无法直接变成圆形,经过不停的Baidu.Google,终于找到了基于 ProgressBar ...
- winform代码触发控件的点击事件
有些时候我们需要自动触发窗体某个控件的事件,这时应该怎么做呢,下面一起看一下: 代码实现 比如我们想在窗体的load事件中触发butoon的单击事件 private void Form1_Load(o ...
- WPF控件自定义样式(FasControls)
一.界面预览 转载于:https://www.cnblogs.com/3xiaolonglong/p/11012683.html
- WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探
原文:WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探 最近因为项目需要,开始学习如何使用WPF开发桌面程序.使用WPF一段时间之后,感觉WPF的开发思 ...
最新文章
- 熊猫TV直播H5播放器架构探索
- 【大数据新手上路】“零基础”系列课程--MySQL 数据整库迁移到 MaxCompute
- C语言--结构体与内存对齐准则简单理解
- 零基础学python pdf-Python pdf(零基础入门学习Python)V1.0 最新版
- J2SE基础夯实系列之正则表达式Java
- 如何使用U盘替换光驱引导部署WES7系统
- 2021非常全的接口测试面试题及参考答案
- 本特利探头330104-00-02-10-02-00
- RS485串口模块详解RS232、RS485、RS485
- 字母缩写对应的世界各国家及其官方语言java工具类
- 2021年茶艺师(中级)考试报名及茶艺师(中级)免费试题
- ant-design-pro跨域问题
- android+路由器+名称,手机更改路由器名称
- linux 系统安全以及应用
- keil5中GD32450i-EVAL创建项目工程
- ArcMap 小知识(3):在ArcGIS中导出数据时显示“保存对象时出错”
- 什么是HTTP长连接、短连接
- 2023年Java面试题_MySQL
- T6企业管理软件 7.1 - 导入期初应收应付提示“子表关联项过长”
- EXCEL 怎么用函数公式计数(Excel函数去重计数 / 去除重复项),不使用透视表
热门文章
- seata不支持MySQL8.x正确解决方案
- Linux升级python到3.6
- 微博关注与粉丝业务场景分析
- iview-admin 登录实现
- 【附源码】Java计算机毕业设计网上拍卖系统(程序+LW+部署)
- 使用计算机来进行翻译属于计算机,【判断题】【判断题】遇到诈骗案件时,只要最后一个关口也就是汇款的那一关节守牢就不会有问题。()...
- 密码加密 加盐 Java PBKDF2 密码哈希代码
- 公募基金核心生产业务超融合转型实践
- 30分钟音频当数据,任何音色零门槛生成,产品免费体验
- 一个activity显示另一个activity,LocalActivityManager实例化不是通过ActivityGroup,