- 博客(413)
- 收藏
- 关注
原创 wpf Image 转 90 度
WPF中旋转Image控件的两种方法:1)使用BitmapImage.Rotation属性实现静态90度倍数旋转,性能更优;2)通过RotateTransform类支持任意角度动态旋转,可设置旋转中心并实现动画效果。前者适合加载时固定角度旋转,后者适合需要灵活控制和动画效果的场景。
2025-08-04 19:00:55
295
原创 c# 获取指定路径盘的可用空间
本文介绍了如何在C#中使用DriveInfo类获取指定路径的磁盘空间信息。通过System.IO命名空间下的DriveInfo类,可以查询磁盘总空间和可用空间。示例代码演示了如何从路径获取驱动器信息,计算可用空间百分比,并处理可能的异常情况。需要注意的是,应用程序可能需要管理员权限才能正确获取磁盘信息。该方法适用于需要监控磁盘空间的应用场景。
2025-07-21 14:37:29
58
原创 wpf Canvas 动态增加右键菜单
WPF Canvas动态添加右键菜单可以通过3种方式实现:1.基础方法是在MouseRightButtonDown事件中创建ContextMenu对象,根据点击位置添加菜单项;2.动态菜单方式可根据不同条件显示不同菜单项,如点击空白处显示添加选项,点击元素显示编辑选项;3.复杂菜单可采用数据绑定方式,通过ItemsSource绑定ViewModel中的菜单项集合。注意事项包括:ContextMenu独立于可视化树,非FrameworkElement对象需使用HitTest检测点击位置,以及避免重复创建菜单对
2025-07-15 10:48:34
106
原创 Visual Stdudio 快捷键的使用
修改快捷键:工具 > 选项 > 环境 > 键盘,搜索命令并分配新快捷键(如对应格式化文档)。插件增强:安装扩展(如 ReSharper)可提供更强大的快捷键支持,但需注意与默认快捷键的冲突。提示快捷键可能因 VS 版本或键盘布局设置(如“常规”或“C#”)略有不同。组合键操作:如表示先按Ctrl+K松开,再按Ctrl+C。使用Ctrl + Q快速搜索 VS 功能(包括快捷键说明)。掌握这些快捷键可显著提升编码效率,建议逐步练习常用操作(如调试、重构),形成肌肉记忆!
2025-07-11 14:33:10
407
原创 wpf Canvas 导出图片
WPF中将Canvas导出为图片的核心方法是使用RenderTargetBitmap渲染位图,并通过PngBitmapEncoder保存为PNG文件。关键步骤包括:临时移除LayoutTransform避免异常、设置Canvas尺寸、调用Measure和Arrange强制布局计算。对于未显示的Canvas需手动指定尺寸,超大Canvas建议分块渲染。该方法已封装为扩展方法,支持直接调用和批量导出。如需导出其他格式如CAD,需注意兼容性问题。
2025-07-11 14:27:47
246
原创 c# 在sql server 数据库中批插入数据
摘要:本文介绍C#高效批量插入SQLServer数据的4种方法:1)SqlBulkCopy类(最高效,支持大批量);2)表值参数(适合万级数据);3)拼接SQL语句(需注意长度限制);4)事务批处理(保证原子性)。性能对比显示前两种方法最优,并提供优化建议:禁用索引/触发器、使用TABLOCK减少锁竞争、避免循环创建SqlCommand对象。每种方法均附代码示例,涵盖不同数据量和业务场景需求。
2025-06-29 17:57:57
120
原创 ListExtension 扩展方法增加 转DataTable()方法
2.判断集合是否不为Null。1.判断集合是否为Null。5.根据一个表达式去除重复。3.判断集合是否有值。
2025-06-29 17:49:02
195
原创 非常有科技感的wpf GroupBox 控件
这是一个WPF GroupBox控件的自定义样式模板,采用几何线条和半透明色块构建现代感边框。模板包含以下特点:左上角斜线连接两个圆点装饰、右上角曲线路径、左下角折线、右下角多边形填充;四条边框采用半透明蓝色;左上角添加两个三角形箭头装饰;标题文字使用特定蓝色(#18AABD);整体边距设为10,5。通过Polyline、Path、Ellipse等元素组合,实现了非传统矩形边框的视觉效果,所有装饰元素均采用#18AABD及其透明度变化色值。
2025-06-29 17:46:09
193
原创 python 爬虫 下载视频
获取整个视频内容 --》分为N个视频片段《ts文件》-->在m3u8连接里面--> 视频播放详情页面源代码里面。7.保存数据,把所有视频片段内容保存下载,并且合成一个完整视频内容。II 在开发者工具里面 直接搜索m3u8 可以直接找相对应连接地址。开发者工具里 response 对应所有ts文件连接。III 我们想要视频数据 <m3u8连接> 在 网页源代码里面有。1.发送请求, 模拟浏览器对于视频播放详情页url发送请示。模拟浏览男友对于,m3u8连接 发送请求。3.解析数据,提取我们想要的数据内容。
2025-06-26 13:35:22
600
原创 C# 将 Enum枚举转成List,并显示在下拉列表中
本文介绍了在项目开发中使用枚举类型作为查询条件的实现方法。首先定义了一个描述输入输出类型的IoTypeEnum枚举,并为其添加Description属性。通过创建EnumModel类封装枚举值、文本和描述信息,并开发EnumExtension扩展类提供枚举转换功能。在UI层使用ComboBox绑定枚举列表,ViewModel负责加载枚举数据并处理选择逻辑。该方法通过反射获取枚举描述信息,缓存枚举字典提升性能,支持将枚举转换为List<EnumModel>或KeyValuePair列表,并提供了默
2025-06-21 18:34:14
155
原创 【设计模式】(简单工厂)+(模板设计模式)在上位机项目的设备通讯实战(机器人通讯举例)
摘要 本文介绍了一种基于软件设计模式解决工业设备硬件更换导致软件大范围修改的方案。通过提取机器人动作接口(IRobot),设计串口通讯基类(SerialPortBase)和TCP通讯基类(TcpClientBase),并采用工厂模式(RobotFactory)创建不同品牌机器人实现类(JelRobot/FivalRobot),实现硬件替换时的最小化软件修改。方案核心运用了里氏替换原则、简单工厂模式和模板方法模式,将通用通讯逻辑封装在基类中,具体机器人指令实现放在派生类。实际应用表明,当更换不同品牌机器人时,
2025-06-21 14:39:34
218
原创 wpf DataTemplate 宽度和控件宽度一样
本文介绍了在WPF中实现DataTemplate宽度与内部控件一致的4种方法:1) 直接绑定控件ActualWidth属性;2) 使用RelativeSource绑定父控件宽度;3) 通过SizeChanged事件动态设置;4) 使用XAML触发器条件设置。重点展示了方法1的实际应用代码示例,其中通过Grid绑定ListBox的实际宽度来实现等宽效果。每种方法各有适用场景,开发者可根据具体需求选择,一般推荐使用绑定方式实现自动调整。内容涵盖了从简单绑定到复杂交互的多种实现方案。
2025-06-20 11:37:53
114
原创 IO 实时状态显示界面 开发
本文介绍了一个基于WPF实现的IO实时状态显示界面。该系统采用数据库存储IO数据,界面动态生成输入输出区域控件。输入区域显示灰色(无信号)或绿色(有信号),输出区域可点击切换状态(绿色表示执行成功)。主要实现包括:1)使用XAML定义用户控件布局;2)后台代码动态加载IO数据并绑定到界面;3)定时刷新UI状态;4)支持输出控制操作。系统采用MVVM模式,通过DispatcherTimer实现100ms刷新间隔,包含输入输出控件、数据库模型和全局数据管理模块,可扩展用于工业控制等场景。
2025-06-20 10:09:04
252
原创 三丰镜头转塔控制器
摘要:本文分享了在三丰镜头转塔控制器串口开发中遇到的Handshake(握手协议)和RtsEnable(RTS信号启用)问题解决方案。通过建立串口通讯基类SerialPortBase,封装了串口参数配置、数据收发及异常处理等功能,并在此基础上实现三丰镜头控制类MitubishiLen,支持镜头状态查询和切换操作。重点解析了通讯协议中数据帧格式处理、超时控制及镜头切换时的坐标补偿逻辑,解决了产品说明书未明确说明通讯参数导致的问题。开发过程中采用ASCII编码传输,通过RequestToSend握手协议和RTS
2025-06-20 09:28:40
70
原创 晶圆Map图芯片拉选
摘要:本文介绍了晶圆Map中的矩形选择功能实现方法。通过在鼠标左键按下时记录起始坐标并创建临时矩形,在移动时更新矩形尺寸,在抬起时确定选区范围。针对相邻矩形易误选的问题,创新性地采用9点判断法(4角点+4边中点+中心点)提升选择精度。代码实现了选区绘制、芯片状态切换(选中/取消)及数据更新等功能,有效解决了晶圆检测中的精准选择需求。
2025-06-07 17:31:49
556
原创 wpf ListBox 去除item 单击样式
这段代码通过自定义ListBoxItem的ControlTemplate移除了默认的点击效果样式,同时将背景设为透明。你可以根据需要进一步调整边框和内容展示样式。在WPF中去除ListBox项的单击样式,可以通过修改ItemContainerStyle来实现。
2025-06-07 16:45:38
638
原创 C# ExcelWorksheet 贴图
摘要:本文介绍了两种在C#中操作Excel插入图片的方法。使用ClosedXML时,需通过XLWorkbook创建工作表,使用AddPicture添加图片并设置位置大小;使用EPPlus则通过ExcelPackage添加工作表,调用AddPicture方法插入图片。两种方式都需要正确设置图片路径、位置参数和保存权限。开发者可根据项目需求选择ClosedXML或EPPlus库来实现Excel工作表贴图功能。
2025-06-05 14:54:31
385
原创 Message=“HalconDotNet.HHandleBase”的类型初始值设定项引发异常
该异常通常与HalconDotNet库的版本冲突或环境配置问题有关,以下是常见解决方案:建议按顺序尝试以下步骤:
2025-06-03 20:19:47
256
原创 20250601 日记
上班这么多年,第一次放端午节。国家为了让大家多消费,就会给我们这些上班多放假,只有放假了你才有可能去消费。今年又和六一儿童节在一起,家长就会带小朋友去买一玩具,去吃好吃的等等。这样就会带动GDP增长了。业绩就会反馈到公司的财务上。今天早上在家里写了一篇文章,再学习一点新知识。时间:2025年6月1日,天气:小雨。
2025-06-01 10:16:11
100
原创 AutoMapper .net Framework 的 Model转换扩展方法
在.NET Framework项目中,使用AutoMapper可以显著减少实体间转换的代码量。首先,通过NuGet安装AutoMapper 8.1.1包。然后,创建映射关系类AutoMapperConfigs,并在其中初始化映射配置,如Mapper.Initialize(cfg => cfg.CreateMap<PointModel, PointViewDataModel>());。在程序启动时调用AutoMapperConfigs.Init()方法以启用映射。接着,创建一个扩展方法Map
2025-05-22 14:40:29
244
原创 C# 字符串扩展方法 更新20250522
本文介绍了一个封装在DLL文件中的字符串扩展方法库,提供了多种字符串处理功能。主要功能包括:判断字符串是否为空或空白、是否为数字、邮件、字母加数字、手机号码、电话号码、网址、IP地址等;字符串转换为int、ushort、float、double等类型;截取指定长度字符串;清除SQL注入危险字符;根据路径递归创建文件夹。该库具有代码简洁、无BUG、可复用性强等优点,适用于各种项目中的字符串处理需求。通过使用正则表达式和内置方法,实现了高效、准确的字符串操作。
2025-05-22 09:16:42
254
原创 在C#中对List<T>实现多属性排序
本文介绍了四种实现多级排序的方法:1. LINQ链式调用:使用OrderBy和ThenBy实现多级排序,直观易读,适合动态需求,返回新列表。2. 自定义比较器(IComparer):适用于复杂或高频排序,性能高,适合固定规则,原地排序。3. 动态排序(反射+LINQ):根据属性名动态排序,需处理反射性能开销和空值。4. 性能对比:LINQ适合简单排序,自定义比较器适合高频复杂排序,动态排序性能较低。示例类Person包含Name、Age和Score属性。
2025-05-21 12:29:56
599
原创 C# string 转枚举
在C#中,将字符串转换为枚举类型可以通过Enum.Parse和Enum.TryParse方法实现。Enum.Parse直接解析字符串,但若字符串无效会抛出异常,需配合try-catch处理。Enum.TryParse则更安全,通过返回值判断是否成功,且支持忽略大小写。为简化调用,可以封装泛型扩展方法,如ToEnum,支持默认值处理。转换时需注意大小写敏感性和值检查,建议使用Enum.IsDefined验证字符串是否为有效枚举值。性能上,TryParse优于Parse加异常捕获。完整示例展示了安全转换及默认值
2025-05-21 10:10:14
622
原创 晶圆Map图芯片选择显示示例
实现思路是通过DataGrid的SelectionChanged事件,在用户选择某一行时,动态调整Map图中对应Mark点的显示效果。具体步骤包括:首先,循环所有Mark点,清除其Rectangle的边框大小;然后,获取用户选择的芯片,设置其Rectangle的边框大小和颜色,以突出显示。示例代码展示了如何在WPF中实现这一功能,通过绑定DataGrid的SelectedItem属性,并在SelectionChanged事件中处理逻辑,最终实现选中Mark点的视觉区分。
2025-05-19 10:58:04
522
原创 如何根据三点求圆心
若三点坐标为(1,2)(1,2)、(3,4)(3,4)、(5,6)(5,6),先求线段AB(1,2-3,4)和AC(1,2-5,6)的垂直平分线方程,联立解得圆心。:两种方法均要求三点不共线,否则无解。垂直平分线法更直观,适合手工绘图;代数方程法适合编程或数值计算。:任意两条弦的垂直平分线交点即为圆心。
2025-05-18 15:16:45
210
原创 wpf DataGrid 行选择 命令绑定
实现事件到命令的映射,以保持MVVM架构的纯粹性。以上方案可根据具体需求组合使用,推荐优先采用。若需通过复选框触发行选择,可绑定。在ViewModel中定义。:通过事件触发器将。
2025-05-13 21:00:31
425
原创 Messenger.Default.Send 所有重载参数说明
Messenger.Default.Send 是 MVVM 框架中实现消息传递的核心方法,其重载参数主要用于控制消息的发送范围和接收条件。以下是其所有重载形式及参数说明:
2025-05-06 19:41:22
182
原创 MvvmLight mvvm 消息订阅与发布 详解
MVVM Light框架中的消息订阅与发布机制是其实现View与ViewModel解耦的核心功能,主要通过类实现跨组件通信。
2025-05-06 09:27:27
219
原创 wpf CommandParameter 传递MouseWheelEventArgs参数
在 WPF 中通过传递参数时,需结合 和 来实现。
2025-05-03 08:23:50
565
原创 wpf CommandParameter 传递MouseWheelEventArgs参数 ,用 MvvmLight 实现
在 WPF 中使用 MVVM Light 框架传递参数至。
2025-05-03 08:20:14
301
Qt定时器(QObject 和 QTimer、QTime、QDateTime)应用技术详解示例
2025-02-28
QT C++ 实现的串口调试助手
2025-02-27
C# HslCommunication库
2025-02-24
用QT C++实现的图书管理系统
2025-02-21
Python 学习和练习项目(基础知识,小游戏,爬取 雪球网的股票数据,实战四-使用正则表达式提取图片网址,爬取图片)
2024-09-15
Qt 常用控件使用示例 1 菜单栏、工具栏、状态栏、标签、铆接部件(浮动窗口) 设置窗口核心部件(文本编辑控件)
2024-09-15
QT CMake 3.3编译器
2024-09-05
海康视觉平台 VM4.3 二次开发完整示例
2024-06-18
用c# 自己封装的Modbus工具类库源码
2024-04-23
C# 开发ITECH 艾德克斯 IT6722A 可编程电源示例代码
2024-01-11
艾德克斯 IT6722A 可编程电源开发文档
2024-01-06
工控焊接机双机协同工作流程图
2024-01-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人