- 博客(339)
- 资源 (20)
- 收藏
- 关注

原创 wpf 保姆级教学 OxyPlot制作图表+AutoFixture模拟数据 示例
功能: 初始化图表的主要设置,包括创建 PlotModel 对象,初始化 X 轴和 Y 轴,添加目标线和目标点,并将它们添加到图表模型中。调用 InitGoalLine() 和 InitGoalPoint() 方法来初始化目标线和目标点。调用 InitX() 和 InitY() 方法来初始化 X 轴和 Y 轴。创建一个 LineSeries 并将其添加到 ChartModel 中。将 X 轴和 Y 轴添加到 ChartModel 中。将目标点和目标线添加到 ChartModel 中。
2024-11-05 15:31:24
929

原创 wpf 保姆级教学 制作丝滑浮动菜单(缩放按键)(基于MahApps)
<mah:MetroWindow x:Class="MyControlsTest.ToolBoxView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blen
2024-11-05 09:03:37
1005

原创 wpf 保姆级教学 制作丝滑浮动菜单(旋转按键)(基于MahApps)
ExpandStoryboard: 用于展开 CtrlGrid 的宽度。CollapseStoryboard: 用于折叠 CtrlGrid 的宽度。IconStoryboard: 用于旋转 PackIconFileIcon 图标。代码解析
2024-11-05 08:54:06
1415
1
原创 wpf 解决Cannot find governing FrameworkElement or FrameworkContentElement for target element.
在这个样式中,我们在Style.Resources中定义了一个BindingProxy对象,并试图设置它的TmpData属性绑定到当前的数据上下文({Binding})。但是,Style.Resources并不是逻辑树或可视树的一部分,因此它没有继承数据上下文。我们可以使用一个技巧:将BindingProxy放置在模板中的某个FrameworkElement的Resources中,这样它就会继承该元素的数据上下文。这个错误通常发生在尝试绑定时,绑定系统无法找到合适的数据上下文。类,用于中转数据绑定。
2025-06-12 15:37:33
161
原创 c# 局部函数 定义、功能与示例
局部函数和Lambda在C#中互补:前者适合封装复杂或可复用的内部逻辑,后者适合简短的一次性操作。局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。• Lambda:每次调用可能触发委托分配(除非缓存),对性能敏感场景需谨慎。• 编译后可能被优化为静态方法(不依赖外部变量时)或实例方法(依赖时)。• 局部函数:无额外开销(尤其静态情况),适合优化关键路径代码。• 短小逻辑且一次性使用(如LINQ查询中的条件)。• 希望减少内存分配(如高频调用的辅助方法)。
2025-06-09 16:09:09
365
原创 wpf 保姆级教学 实现一个酷炫的浮动通知栏 支持多种通知类型(如信息、警告、错误等)
定义了一个命名空间,用于组织帮助类。:定义了一个静态类,用于管理通知的显示。方法string title = "成功",});功能:显示一个成功通知。参数message:通知内容(必填)。title:通知标题,默认为“成功”。:通知显示时间,默认为3秒。position:通知显示位置,默认为右上角。实现使用确保在UI线程上执行。创建一个实例,传入标题、内容、通知类型()、显示时间和位置。调用显示通知。功能。
2025-06-09 16:07:50
1210
原创 wpf Behaviors库实现支持多选操作进行后台绑定数据的ListView
扩展ListView的功能通过行为机制,为ListView添加了对多选项目的支持,并将其与视图模型中的属性进行双向绑定。自动更新选中项当用户在ListView中选择或取消选择项目时,属性会自动更新,确保视图模型中的数据与用户界面保持一致。通过在XAML中使用,可以将ListView的选中项与视图模型中的属性绑定,实现数据的双向同步。
2025-06-05 16:24:32
1188
原创 c# 将一个旧项目用到的所有包快速复制到一个新项目引用
• Visual Studio 会自动检测变更并还原包(或右键解决方案 → 还原 NuGet 包)。• 如果项目 B 已有其他包,检查是否有版本冲突(通过 “解决方案的 NuGet 包管理” 解决)。• 执行 “清理解决方案” → “重新生成” 确保所有依赖正确加载。• 右键项目 A → 卸载项目 → 再次右键 → 编辑项目文件。• 确保复制的包版本与项目 A 完全一致,避免兼容性问题。• 确保项目 A 和 B 使用相同的 SDK 风格(如。• 保存文件并重新加载项目。项目 SDK 兼容性。
2025-05-16 09:28:05
546
原创 c# 构造函数中的 `: base()` 语法详解
关键字在构造函数中的使用是 C# 中实现构造函数链式调用的重要机制,它允许派生类调用基类的构造函数。示例7:在ASP.NET Core中的使用。示例5:必须显式调用基类构造函数的情况。示例6:在WinForms中的常见用法。示例1:最简单的基类构造函数调用。示例4:隐式调用基类无参构造函数。示例2:调用基类的有参构造函数。示例3:多级继承中的构造函数链。多层继承中的构造函数调用。带参数的构造函数调用。
2025-05-13 10:43:13
211
原创 c# 构造函数中的 `: this()` 语法详解 (this() 构造函数调用与可选参数的比较不同点和各自的适用场景)
关键字在构造函数中的使用是 C# 中实现构造函数重载调用的重要机制,它允许一个构造函数调用同一个类中的另一个构造函数。下面我将详细讲解这种语法并提供多个示例。提供了更大的灵活性和控制力,特别是在需要不同初始化逻辑或集中参数验证时。可选参数则更适合简单的默认值场景,使代码更简洁。构造函数调用和可选参数在某些简单场景下可以互换,但它们服务于不同的设计目的。示例1:无参构造函数调用有参构造函数。示例2:多个构造函数相互调用。示例4:结合基类构造函数调用。带不同参数的构造函数调用。何时使用可选参数更合适。
2025-05-13 10:42:59
614
原创 c# 深度剖析 LinqToStdf 02_IIndexingStrategy.cs
这段代码定义了 STDF 文件索引策略的接口和实现,用于优化记录查询性能。这段代码提供了灵活高效的索引策略框架,平衡了内存使用和查询性能的需求。SimpleIndexingStrategy 类。• 适用于内存敏感或一次性处理的场景。• 支持不同的缓存和查询优化策略。• 可根据记录类型选择不同策略。• 缓存后查询直接在内存执行。• 提供统一的索引策略接口。• 留空具体索引和枚举方法。• 简单但有效的内存缓存。• 实现更复杂的索引结构。• 不需要重复查询记录。• 最简单的策略实现。• 定义缓存流程框架。
2025-05-12 14:13:56
286
原创 c# 深度剖析 LinqToStdf 01_StdfFile.cs 一个用于解析/处理半导体测试领域标准测试数据格式(STDF)文件的库 -marklio
• _V4ConverterFactory:静态的V4记录转换器工厂。• 支持搜索模式(_InSeekMode)处理损坏数据。• 包含LINQ支持、集合操作、IO操作等基础功能。• 引入了处理STDF文件所需的核心.NET库。• 支持文件路径、调试模式、自定义流管理器等。• 使用yield return实现流式处理。• 实现了IRecordContext接口。• 允许对STDF记录流进行链式过滤操作。• 使用yield return返回记录。• _Stream:可回退的字节流实现。
2025-05-12 10:53:05
322
原创 c# 静态类和将一个普通类所有成员设置为静态的,区别在哪
在 C# 中,静态类和将普通类的所有成员设置为静态虽然都能实现类似的功能(即无需实例化即可调用成员),但它们在设计意图、编译器限制和使用场景上有本质区别。• 可包含实例成员:虽然所有成员被设为静态,但类本身仍可包含非静态成员(但通常不推荐混用)。• 隐式密封(sealed):静态类不能继承其他类,也不能被继承(相当于隐式添加了。• 所有成员必须静态:静态类中的成员(方法、属性、字段等)必须显式声明为。• 类本身非静态:可以实例化(除非手动限制构造函数,如私有化构造)。• 类完全无状态(不存储实例数据)。
2025-05-07 15:11:42
333
原创 c# 深度剖析yield关键字
是 C# 中用于简化迭代器实现的语法糖,它可以自动生成状态机来管理迭代过程。在真实项目开发中能显著提升代码的内存效率和可维护性。生成的迭代器和手动实现的迭代器在功能上等价(都实现了。:编译时生成代码(查看编译后的DLL可发现额外类)• 相同点:最终都生成符合迭代器模式的标准实现。最佳实践:当处理未知大小的数据流时,优先使用。• 手动实现:需显式用字段记录状态(如。)提升为生成类的字段,保存完整状态。• 手动实现:直接通过代码顺序控制。• 方法有副作用(如修改全局状态)• 手动实现:开发时直接编写。
2025-04-27 09:02:54
1047
原创 ASP.NET Core 自动识别 appsettings.json的机制解析
并直接读取值的机制,是通过框架的 “约定优于配置” 设计和 依赖注入系统 共同实现的。环境变量改变时,会自动加载对应的环境配置文件。• 自动将字符串值转换为其他类型(通过。ASP.NET Core 自动识别。在 ASP.NET Core 中,按优先级遍历所有Provider。,修改文件后会自动重新加载配置。是标准配置文件,除非显式禁用。已包含默认服务配置(请求键"MyKey"
2025-04-25 13:57:54
843
原创 c# TI BQFS文件格式详解及C#转换
解释:比较设备地址0xAA从命令0x3E开始的数据是否匹配0x02,0x00,0x02,0x20,0x00,0x03。Golden Image文件 (*.gm.fs):用于ROM电量计,配置数据内存RAM。解释:向设备地址0xAA写入,从命令0x3E开始,写入数据0x02和0x00。Flash电量计配置文件 (*.df.fs):用于闪存电量计的配置。固件和配置文件 (*.bq.fs):包含固件和配置的闪存电量计文件。OTP配置文件 (*.ot.fs):用于一次性编程电量计的配置。(2) 比较命令 (C:)
2025-04-25 13:45:49
426
原创 Asp.Net Core 基于(asp.net core 2.2) 创建asp .net core空项目
错误信息显示您的应用程序需要 .NET Core 2.2.0 运行时,但您的系统上安装的是其他版本(2.1/3.1/5.0/6.0/7.0/8.0/9.0)。这个文件是 ASP.NET Core 项目的启动配置文件,主要用于定义 开发环境 下的运行方式(如 IIS Express 或 Kestrel)。• 直接使用 Kestrel(ASP.NET Core 内置服务器)运行。• 适合 调试 ASP.NET Core + IIS 集成 的场景。• 适合 纯开发调试(无 IIS 依赖),启动更快。
2025-04-25 11:39:29
1215
原创 c# 简单实现将Message的内容保存到txt中,超过100个则清理旧文件
【代码】c# 简单实现将Message的内容保存到txt中,超过100个则清理旧文件。
2025-04-18 14:01:47
279
原创 c# 实现一个CSV文件加载器,支持并行处理和多种配置
实现一个CSV文件加载器,支持并行处理和多种配置选项。支持多种编码自动检测可配置的分隔符和数据处理选项串行和并行两种处理模式顺序保持选项健壮的错误处理set;} = null;set;} = ',';set;} = true;set;} = 7;set;} = true;set;} = -1;set;} = true;// 新增:保持原始顺序options??if (!// 改为立即加载所有行?exMessage。
2025-04-11 10:33:49
125
原创 c# 企业级ADB通信示例
初始化 ADB 管理器,自动查找或使用指定的 ADB 可执行文件路径。:可选,自定义 ADB 路径。:异步执行指定的 ADB 命令,并返回输出结果。:获取当前连接的 Android 设备列表。:自定义异常,表示 ADB 命令执行失败。:强制终止所有正在运行的 ADB 进程。:表示一个连接的 Android 设备。:查找 ADB 可执行文件的完整路径。:封装 ADB 命令的执行结果。:要执行的 ADB 命令(如。:超时时间(默认 30 秒)。,包含标准输出和错误输出。:通常在释放资源时调用。
2025-04-08 15:39:14
217
原创 wpf windowController实现全局窗口管理
windowKeyNamewindowKeyNametypeofTNamewindowKeyNamewindowKeyNameexMessage上面代码定义了一个名为的类,主要职责是管理和控制窗口(Window)的注册、获取和注销。
2025-02-07 09:26:51
562
原创 c# Lazy<T>单例模式 - 延迟初始化单例实例示例与详解
是 C# 中用于延迟初始化的类,它允许你在第一次访问对象时才创建实例,而不是在程序启动时就创建实例。这在单例模式中非常有用,因为它可以避免不必要的资源消耗。如果不需要线程安全,可以指定。的构造函数接受一个委托(),用于定义如何创建实例。
2025-02-07 09:15:08
781
原创 c# 7.0模式匹配示例与详解
在 C# 7.0 中,模式匹配(Pattern Matching)功能得到了显著增强,主要引入了is表达式和switch语句的模式匹配扩展,使得代码更简洁、可读性更强。
2025-02-07 09:03:21
307
原创 wpf 窗口联动,实现贴合的可隐藏侧边栏效果
这段 XAML 代码定义了一个基于 的窗口,使用了 MahApps.Metro 框架的控件和样式,主要实现了一个带有特定布局和功能的窗口视图。以下是对这段代码的详细分析:命名空间::引用 MahApps.Metro 控件库。:引用 MahApps.Metro 的图标库(PackIconFontAwesome)。功能总结内容:按钮功能:动态行为:窗口联动: 方法该方法根据 的值来决定是展开还是收起视图。如果 为 ,则调用 方法将 移动到主窗口的右侧,并显示它。然后
2025-02-05 10:56:51
953
原创 wpf 全网最全!窗体(Windows)的常见事件及其详细解释
sender和e。这两个参数在事件处理过程中起着关键作用,分别提供了事件的触发源和事件的详细信息。下面详细解释这两个参数的用途和使用方法。sender是一个object类型的参数,表示触发事件的对象。e是一个继承自EventArgs或其派生类的对象,表示事件的详细信息。
2025-01-22 11:27:37
1135
原创 c# 动态加载模块插件示例
代码结构分析:类定义和成员变量: 方法的详细分析:文件存在性检查:首先检查 指向的文件是否存在,如果不存在,将 (未在代码中声明,会导致编译错误)设置为 并返回,结束方法执行。这里可能遗漏了 的声明。清空字典:清空 字典,以确保在重新加载时不会残留之前的数据。程序集加载和类型筛选:使用 从指定的 DLL 路径加载程序集。通过 获取程序集中的所有类型,并使用 筛选出实现了 接口的类型。属性检查和实例创建:对于筛选出来的每个类型,使用 获取该类型的 集合。如果
2025-01-20 17:20:00
451
原创 c# 常见的几种取整场景
软件取整,通常指的是在计算机软件中对数值进行取整操作,即将一个浮点数或小数转换为整数,同时确定如何处理小数部分。取整操作在编程和数学计算中非常常见,不同的取整方法适用于不同的场景。
2025-01-09 10:48:46
862
原创 c# 快捷键模块
这段代码是 OnSourceInitialized 方法的重写,用于在窗口的 SourceInitialized 事件触发时注册热键。SourceInitialized 事件在窗口句柄创建后立即触发。的命名空间中,其中包含一个静态类。,用于管理热键的注册和注销。
2024-12-31 15:38:12
695
原创 c# Record关键字
在 C# 9.0 中引入了 关键字,用于定义记录类型(Record Types)。记录类型是一种轻量级的数据载体,专注于表示数据,它提供了内置的相等性比较、生成属性和方法等功能,使得编写数据类更加简洁和高效。记录类型的声明非常简洁,基本语法如下:这会生成一个包含 、 和 属性的记录类型,并自动提供构造函数、、 和 方法。可变记录:可以通过在记录类型后添加 关键字来创建可变记录,允许修改属性。例如:构造函数和初始化记录类型自动生成构造函数,可以直接通过属性初始化:相等性比较记录类型根
2024-12-31 15:32:01
672
原创 wpf 重绘一个浮动的圆形按钮
<Window x:Class="DataParser.FlowView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
2024-12-28 15:28:09
1456
原创 wpf 基于Behavior库 的行为模块
是一个用于WPF(Windows Presentation Foundation)的行为库,它的主要作用是允许开发者在不修改控件源代码的情况下,为控件添加自定义的行为和交互逻辑。行为库的核心思想是通过定义可重用的行为组件,将交互逻辑与UI控件解耦,从而提高代码的可维护性和可复用性。
2024-12-28 15:17:45
1390
原创 c# 不同数据类型转换
将输入的字节数组转换为表示其每一位的二进制字节数组,每个字节按位展开为8个二进制位存储在新的字节数组中。按照指定的块大小(默认块大小为2)对字节数组中的数据块进行反转顺序操作,例如每2个字节一组进行反转。将二进制字节数组转换为十六进制字节数组,按照一定的位运算规则将8位一组的二进制转换为十六进制表示。把二进制字节数组转换为十进制整数,通过对二进制位对应的2的幂次进行累加来实现转换。将字节类型数据转换为十六进制表示的字符串,进行格式化为固定长度并转换为大写形式。编码进行转换,否则按指定编码转换。
2024-12-23 16:39:28
950
原创 c# 实现一个简单的异常日志模块(异常迭代+分片+定时清理)+AOP Rougamo全局注入
特性标记的方法或类,都会在抛出异常时自动调用。这意味着在这个类中,所有被。
2024-12-23 16:28:33
1316
原创 C# HandyControl 官方示例 保姆级从0到1搭建学习流程
调试按钮那里,点下拉菜单,框架选择 net8.0-windows 就可以了。5.即可正常运行,具体每一项控件的示例代码在。Git Clone 或直接下载源码。Debug那个下拉菜单选择。
2024-11-26 14:07:12
827
24年最新版:WPFhalcon源码vm视觉和运动控制软件框架源码,全网最新(带ui设计器和轴卡运控),WPF MVVM开发模式
2024-01-07
WPF Halcon机器视觉和运动控制软件框架 基于原有框架上二次开发
2023-12-20
c# 全网最稳定 企业级 以太网客户端类库 具备即时更新状态,断线三次重拨,稳定收发
2023-08-10
C# wpf 根据数据库一键生成大量模型类(支持sqllite、Access、Sqlserver)源码
2023-03-19
基于NPOI封装的ExcelHelper操作类,简单易用,具体流程详见博客
2023-05-22
C# wpf 根据数据库一键生成大量模型类(支持sqllite、Access、Sqlserver)全网独家 可使用软件不带源码
2023-03-19
C# 实现模拟PID调试(无硬件下进行数据模拟调试)
2022-12-07
统计文件夹内所有pdf页数的小工具.exe
2021-03-03
Python 将文件夹内所有pdf转换为图片输出到指定文件夹中的小软件
2021-11-12
C语言链表例子(自己写的)
2020-12-01
C# winform串口助手(自己写的)
2020-12-01
Python 一键生成exe文件
2021-04-28
Python 批量复制文件夹,不复制里面的内容
2021-04-28
C# 二分法例子(自己写的)
2020-12-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人