- 博客(349)
- 资源 (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
976

原创 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
1016

原创 wpf 保姆级教学 制作丝滑浮动菜单(旋转按键)(基于MahApps)
ExpandStoryboard: 用于展开 CtrlGrid 的宽度。CollapseStoryboard: 用于折叠 CtrlGrid 的宽度。IconStoryboard: 用于旋转 PackIconFileIcon 图标。代码解析
2024-11-05 08:54:06
1423
1
原创 c# 深度解析:实现一个通用配置管理功能,打造高并发、可扩展的配置管理神器
这是一个抽象基类,使用泛型参数TKey和TValue来支持不同类型的键值对配置。使用保证线程安全抽象路径定义,由子类实现具体配置路径提供基本的 CRUD 操作自动持久化到 JSON 文件错误处理和日志记录。
2025-07-14 14:10:10
1039
原创 wpf 实现窗口点击关闭按钮时 隐藏 而不是真正关闭,并且只有当 父窗口关闭时才真正退出 、父子窗口顺序控制与资源安全释放
判断是否由父窗口触发关闭,如果不是则取消关闭并隐藏窗口。在 WPF 中,窗口关闭顺序和应用程序退出的行为取决于。这样就能精准控制 WPF 窗口的关闭逻辑!在 WPF 中,如果希望窗口点击关闭按钮时。是检测父窗口是否关闭的关键条件。的方式来判断父窗口是否关闭。而不是真正关闭,并且只有当。:子窗口先关闭,父窗口后关闭。,而不是检测父窗口是否关闭。WPF 的窗口关闭顺序遵循。
2025-07-14 14:07:23
1025
原创 c# IO密集型与CPU密集型任务详解,以及在异步编程中的使用示例
IO密集型:主要时间花费在等待IO操作,应关注IO优化和异步编程CPU密集型:主要时间花费在计算,应关注算法优化和多核利用实际应用:很多任务是混合型的,需要根据瓶颈采取相应策略C#特性:充分利用async/await、Task、Parallel等特性处理不同类型任务。
2025-07-01 15:25:38
570
原创 Visual Studio install 解决进度条不加载,自动安装失败导致软件无法打开问题
5. 从里面挑ttl 最小的ip 地址复制到刚刚hosts文件里面即可。6. 实测下载速度非常快。
2025-07-01 10:17:45
190
原创 wpf UniformGrid控件详解与示例应用
UniformGrid是WPF中一个简单实用的布局控件,特别适合需要等宽等高元素排列的场景。使用简单,无需复杂行列定义自动均匀分布子元素适合工具面板、图片网格、棋盘类游戏等布局。
2025-06-30 11:15:26
748
原创 c# 详细分析Task.sleep和Thread.sleep 的区别、使用场景和应用示例
优先使用Task.Delay:在异步代码和UI应用程序中总是使用Task.Delay仅在必要时使用:在同步代码、测试或后台线程中可以使用避免在UI线程使用:这会导致应用程序无响应考虑使用:为长时间延迟添加取消支持。
2025-06-30 11:15:04
967
原创 wpf 控件开发中,OnApplyTemplate 和 OnContentRendered区别
是两个重要的生命周期方法,它们有不同的用途和调用时机,适合不同的操作场景。对于虚拟化容器(如 ListBox),子项的。可能在实际显示时才会触发。在 WPF 控件开发中,
2025-06-17 11:31:25
716
原创 wpf 深度多角度剖析依赖属性和附加属性的区别和使用场景,带代码示例
用途:定义自定义控件自身的属性(如 MyButton.Text)。特点:直接封装控件的状态和行为,通过实例属性访问。
2025-06-17 11:30:27
788
原创 wpf 队列(Queue)在视觉树迭代查找中的作用分析
数据结构扮演着关键角色,它实现了广度优先搜索(BFS)算法来遍历视觉树。下面详细解析队列在此方法中的具体作用和工作原理。通过使用队列实现的迭代算法,我们获得了比递归更安全、更可控的视觉树遍历方法,特别适合处理未知深度和复杂度的数据结构。
2025-06-16 16:09:15
945
原创 wpf 深度剖析视觉树和逻辑树,带示例代码
逻辑树是XAML中定义的结构,视觉树是实际渲染的结构每个逻辑树节点可能对应多个视觉树节点不是所有视觉树节点都有对应的逻辑树节点控件的视觉树由其ControlTemplate定义,修改模板会改变视觉结构示例:自定义Button模板</</</</Button└── Grid。
2025-06-16 16:00:51
814
原创 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
600
原创 c# 局部函数 定义、功能与示例
局部函数和Lambda在C#中互补:前者适合封装复杂或可复用的内部逻辑,后者适合简短的一次性操作。局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。• Lambda:每次调用可能触发委托分配(除非缓存),对性能敏感场景需谨慎。• 编译后可能被优化为静态方法(不依赖外部变量时)或实例方法(依赖时)。• 局部函数:无额外开销(尤其静态情况),适合优化关键路径代码。• 短小逻辑且一次性使用(如LINQ查询中的条件)。• 希望减少内存分配(如高频调用的辅助方法)。
2025-06-09 16:09:09
425
原创 wpf 保姆级教学 实现一个酷炫的浮动通知栏 支持多种通知类型(如信息、警告、错误等)
定义了一个命名空间,用于组织帮助类。:定义了一个静态类,用于管理通知的显示。方法string title = "成功",});功能:显示一个成功通知。参数message:通知内容(必填)。title:通知标题,默认为“成功”。:通知显示时间,默认为3秒。position:通知显示位置,默认为右上角。实现使用确保在UI线程上执行。创建一个实例,传入标题、内容、通知类型()、显示时间和位置。调用显示通知。功能。
2025-06-09 16:07:50
1278
原创 wpf Behaviors库实现支持多选操作进行后台绑定数据的ListView
扩展ListView的功能通过行为机制,为ListView添加了对多选项目的支持,并将其与视图模型中的属性进行双向绑定。自动更新选中项当用户在ListView中选择或取消选择项目时,属性会自动更新,确保视图模型中的数据与用户界面保持一致。通过在XAML中使用,可以将ListView的选中项与视图模型中的属性绑定,实现数据的双向同步。
2025-06-05 16:24:32
1216
原创 c# 将一个旧项目用到的所有包快速复制到一个新项目引用
• Visual Studio 会自动检测变更并还原包(或右键解决方案 → 还原 NuGet 包)。• 如果项目 B 已有其他包,检查是否有版本冲突(通过 “解决方案的 NuGet 包管理” 解决)。• 执行 “清理解决方案” → “重新生成” 确保所有依赖正确加载。• 右键项目 A → 卸载项目 → 再次右键 → 编辑项目文件。• 确保复制的包版本与项目 A 完全一致,避免兼容性问题。• 确保项目 A 和 B 使用相同的 SDK 风格(如。• 保存文件并重新加载项目。项目 SDK 兼容性。
2025-05-16 09:28:05
653
原创 c# 构造函数中的 `: base()` 语法详解
关键字在构造函数中的使用是 C# 中实现构造函数链式调用的重要机制,它允许派生类调用基类的构造函数。示例7:在ASP.NET Core中的使用。示例5:必须显式调用基类构造函数的情况。示例6:在WinForms中的常见用法。示例1:最简单的基类构造函数调用。示例4:隐式调用基类无参构造函数。示例2:调用基类的有参构造函数。示例3:多级继承中的构造函数链。多层继承中的构造函数调用。带参数的构造函数调用。
2025-05-13 10:43:13
276
原创 c# 构造函数中的 `: this()` 语法详解 (this() 构造函数调用与可选参数的比较不同点和各自的适用场景)
关键字在构造函数中的使用是 C# 中实现构造函数重载调用的重要机制,它允许一个构造函数调用同一个类中的另一个构造函数。下面我将详细讲解这种语法并提供多个示例。提供了更大的灵活性和控制力,特别是在需要不同初始化逻辑或集中参数验证时。可选参数则更适合简单的默认值场景,使代码更简洁。构造函数调用和可选参数在某些简单场景下可以互换,但它们服务于不同的设计目的。示例1:无参构造函数调用有参构造函数。示例2:多个构造函数相互调用。示例4:结合基类构造函数调用。带不同参数的构造函数调用。何时使用可选参数更合适。
2025-05-13 10:42:59
672
原创 c# 深度剖析 LinqToStdf 02_IIndexingStrategy.cs
这段代码定义了 STDF 文件索引策略的接口和实现,用于优化记录查询性能。这段代码提供了灵活高效的索引策略框架,平衡了内存使用和查询性能的需求。SimpleIndexingStrategy 类。• 适用于内存敏感或一次性处理的场景。• 支持不同的缓存和查询优化策略。• 可根据记录类型选择不同策略。• 缓存后查询直接在内存执行。• 提供统一的索引策略接口。• 留空具体索引和枚举方法。• 简单但有效的内存缓存。• 实现更复杂的索引结构。• 不需要重复查询记录。• 最简单的策略实现。• 定义缓存流程框架。
2025-05-12 14:13:56
304
原创 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
346
原创 c# 静态类和将一个普通类所有成员设置为静态的,区别在哪
在 C# 中,静态类和将普通类的所有成员设置为静态虽然都能实现类似的功能(即无需实例化即可调用成员),但它们在设计意图、编译器限制和使用场景上有本质区别。• 可包含实例成员:虽然所有成员被设为静态,但类本身仍可包含非静态成员(但通常不推荐混用)。• 隐式密封(sealed):静态类不能继承其他类,也不能被继承(相当于隐式添加了。• 所有成员必须静态:静态类中的成员(方法、属性、字段等)必须显式声明为。• 类本身非静态:可以实例化(除非手动限制构造函数,如私有化构造)。• 类完全无状态(不存储实例数据)。
2025-05-07 15:11:42
361
原创 c# 深度剖析yield关键字
是 C# 中用于简化迭代器实现的语法糖,它可以自动生成状态机来管理迭代过程。在真实项目开发中能显著提升代码的内存效率和可维护性。生成的迭代器和手动实现的迭代器在功能上等价(都实现了。:编译时生成代码(查看编译后的DLL可发现额外类)• 相同点:最终都生成符合迭代器模式的标准实现。最佳实践:当处理未知大小的数据流时,优先使用。• 手动实现:需显式用字段记录状态(如。)提升为生成类的字段,保存完整状态。• 手动实现:直接通过代码顺序控制。• 方法有副作用(如修改全局状态)• 手动实现:开发时直接编写。
2025-04-27 09:02:54
1213
原创 ASP.NET Core 自动识别 appsettings.json的机制解析
并直接读取值的机制,是通过框架的 “约定优于配置” 设计和 依赖注入系统 共同实现的。环境变量改变时,会自动加载对应的环境配置文件。• 自动将字符串值转换为其他类型(通过。ASP.NET Core 自动识别。在 ASP.NET Core 中,按优先级遍历所有Provider。,修改文件后会自动重新加载配置。是标准配置文件,除非显式禁用。已包含默认服务配置(请求键"MyKey"
2025-04-25 13:57:54
892
原创 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
445
原创 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
1249
原创 c# 简单实现将Message的内容保存到txt中,超过100个则清理旧文件
【代码】c# 简单实现将Message的内容保存到txt中,超过100个则清理旧文件。
2025-04-18 14:01:47
306
原创 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
139
原创 c# 企业级ADB通信示例
初始化 ADB 管理器,自动查找或使用指定的 ADB 可执行文件路径。:可选,自定义 ADB 路径。:异步执行指定的 ADB 命令,并返回输出结果。:获取当前连接的 Android 设备列表。:自定义异常,表示 ADB 命令执行失败。:强制终止所有正在运行的 ADB 进程。:表示一个连接的 Android 设备。:查找 ADB 可执行文件的完整路径。:封装 ADB 命令的执行结果。:要执行的 ADB 命令(如。:超时时间(默认 30 秒)。,包含标准输出和错误输出。:通常在释放资源时调用。
2025-04-08 15:39:14
264
原创 wpf windowController实现全局窗口管理
windowKeyNamewindowKeyNametypeofTNamewindowKeyNamewindowKeyNameexMessage上面代码定义了一个名为的类,主要职责是管理和控制窗口(Window)的注册、获取和注销。
2025-02-07 09:26:51
577
原创 c# Lazy<T>单例模式 - 延迟初始化单例实例示例与详解
是 C# 中用于延迟初始化的类,它允许你在第一次访问对象时才创建实例,而不是在程序启动时就创建实例。这在单例模式中非常有用,因为它可以避免不必要的资源消耗。如果不需要线程安全,可以指定。的构造函数接受一个委托(),用于定义如何创建实例。
2025-02-07 09:15:08
884
原创 c# 7.0模式匹配示例与详解
在 C# 7.0 中,模式匹配(Pattern Matching)功能得到了显著增强,主要引入了is表达式和switch语句的模式匹配扩展,使得代码更简洁、可读性更强。
2025-02-07 09:03:21
321
原创 wpf 窗口联动,实现贴合的可隐藏侧边栏效果
这段 XAML 代码定义了一个基于 的窗口,使用了 MahApps.Metro 框架的控件和样式,主要实现了一个带有特定布局和功能的窗口视图。以下是对这段代码的详细分析:命名空间::引用 MahApps.Metro 控件库。:引用 MahApps.Metro 的图标库(PackIconFontAwesome)。功能总结内容:按钮功能:动态行为:窗口联动: 方法该方法根据 的值来决定是展开还是收起视图。如果 为 ,则调用 方法将 移动到主窗口的右侧,并显示它。然后
2025-02-05 10:56:51
985
原创 wpf 全网最全!窗体(Windows)的常见事件及其详细解释
sender和e。这两个参数在事件处理过程中起着关键作用,分别提供了事件的触发源和事件的详细信息。下面详细解释这两个参数的用途和使用方法。sender是一个object类型的参数,表示触发事件的对象。e是一个继承自EventArgs或其派生类的对象,表示事件的详细信息。
2025-01-22 11:27:37
1243
2
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
jpgTo16.exe
2021-11-03
Python 批量复制文件夹,不复制里面的内容
2021-04-28
opencv python 学习人脸识别Demo
2021-04-22
C# 二分法例子(自己写的)
2020-12-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人