WPF随笔收录-DataGrid固定右侧列
2024/5/27 11:46:52

一、前言 在项目开发过程中,DataGrid是经常使用到的一个数据展示控件,而通常表格的最后一列是作为操作列存在,比如会有编辑、删除等功能按钮。但WPF的原始DataGrid中,默认只支持固定左侧列,这跟大家习惯性操作列放最后不符,今天就来介绍一种简单的方式实现固定右侧列。(这里的实现方式参考的大佬的两个DataGrid合并在一起的方式,原博客:https:www.cnblogs.comakwkevinp17872348.html) 二、正文 1、上面大佬的实现,就直接基于他自己的控件库里实现的,这里我介

wpf程序修改启动入口注意事项
2024/5/27 11:46:51

如果你在自定义的 Main 方法中直接使用 App 类并启动应用程序,但发现 App.xaml 中定义的资源没有被正确加载,那么问题可能在于如何正确配置 App.xaml 与你的 App 类的交互。 确保 App.xaml 文件中的 x:Class 属性正确指向你的 App 类。这样,当你创建 App 类的实例并调用 Run 方法时,它会自动处理在 App.xaml 中定义的资源和配置。 步骤 1: 检查 App.xaml 设置 首先,确保 App.xaml 的 Build Action 设置为 Appl

记一次 .NET某炉膛锅炉检测系统 崩溃分析
2024/5/27 11:46:51

一:背景 1. 讲故事 上个月有个朋友在微信上找到我,说他们的软件在客户那边隔几天就要崩溃一次,一直都没有找到原因,让我帮忙看下怎么回事,确实工控类的软件环境复杂难搞,朋友手上有一个崩溃的dump,刚好丢给我来分析一下。 二:WinDbg分析 1. 程序为什么会崩溃 windbg 有一个厉害之处在于双击之后可以帮你自动定位到崩溃处,输出如下:................................................................ ..................

一个.NET内置依赖注入的小型强化版
2024/5/27 11:46:51

前言 .生态中有许多依赖注入容器。在大多数情况下,微软提供的内置容器在易用性和性能方面都非常优秀。外加ASP. Ce默认使用内置容器,使用很方便。 但是笔者在使用中一直有一个头疼的问题:服务工厂无法提供请求的服务类型相关的信息。这在一般情况下并没有影响,但是内置容器支持注册开放泛型服务,此时会导致无法实现某些需求。 ASP. Ce目前推荐使用上下文池访问EF Ce上下文,但是某些功能需要直接使用上下文(例如Identity Ce)。官方文档建议使用自定义工厂通过上下文池获取上下文。这其实是一种服务转发(或

Bogus 实战:使用 Bogus 和 EFCore 生成模拟数据和种子数据【完整教程】
2024/5/27 11:46:50

引言 上一章我们介绍了在xUnit单元测试中用xUnit.DependencyInject来使用依赖注入,上一章我们的Sample.Reposity仓储层有一个批量注入的接口没有做单元测试,今天用这个示例来演示一下如何用Bogus创建模拟数据 ,和 EFCe 的种子数据生成 Bogus 的优势丰富的数据生成支持:Bogus 提供了广泛的 API 支持,涵盖了各种数据类型和用例,使得生成虚假数据变得非常灵活和方便。重复性和可控性:通过设置种子值,可以确保生成的虚假数据是可重复的,这对于需要一致的测试数据或示

WPF随笔收录-实时绘制心率曲线
2024/5/27 11:46:50

一、前言在自己的项目中,涉及到实时心率曲线的绘制,项目上的曲线绘制,一般很难找到能直接用的第三方库,而且有些还是定制化的功能,所以还是自己绘制比较方便。很多人一听到自己画就害怕,感觉很难,今天就分享一个完整的实时心率数据绘制心率曲线图的例子;之前的博客也分享给DrawingVisual绘制曲线的方法,这个例子也是通过同样的方式;二、正文 1、实时心率监护这种项目,场景一般是硬件设备采集到心率数据,然后推送给后台汇总,然后后台通过网络再推送给客户端,客户端再进行展示。 2、这里通过加载准备好的模拟心率数据,

WPF/C#实现图像滤镜优化方案:打造炫目视觉体验!
2024/5/27 11:46:49

原因:我之所以想做这个项目,是因为在之前查找关于C#WPF相关资料时,我发现讲解图像滤镜的资源非常稀缺。此外,我注意到许多现有的开源库主要基于CPU进行图像渲染。这种方式在处理大量图像时,会导致CPU的渲染负担过重。因此,我将在下文中介绍如何通过GPU渲染来有效实现图像的各种滤镜效果。 生成的效果生成效果的方法:我主要是通过参考Shazzam Shader Edit来编写HLSL像素着色器。 HLSL(High Level Shader Language,高级着色器语言)是Direct3D着色器模型所需的

一文读懂.NET WebAPI中FromRoute、FromQuery、FromBody的关键角色与用法
2024/5/27 11:46:48

. WebAPI作为一种构建RESTful服务的强大工具,为开发者提供了便捷的方式来定义、处理HTTP请求并返回响应。在设计API接口时,正确地接收和解析客户端发送的数据至关重要。. WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用于指示控制器方法应如何从不同的请求源提取参数。本文将深入探讨这三个属性的作用及其用法。 一、[FromRoute]:从路由模板提取参数 作用:[FromRoute]属性用于标识那些应从HTTP请求的路由数据中提取的参数。当

C#自增运算符详解:++i与i++的区别及应用场景
2024/5/27 11:46:47

概述:在C#中,++i和i++都是自增运算符,其中++i先增加值再返回,而i++先返回值再增加。应用场景根据需求选择,前缀适合先增后用,后缀适合先用后增。详细示例提供清晰的代码演示这两者的操作时机和实际应用。 在C#中,++i 和 i++ 都是自增运算符,但它们在操作上有细微的差异,主要体现在操作的时机。以下是详细的讲解和应用场景:前缀自增运算符 (++i): 操作时机: 首先增加 i 的值,然后返回增加后的值。 应用场景: 当你需要先增加变量的值,然后再使用增加后的值时,使用前缀自增运算符是合适的。 i

Taurus.MVC 性能压力测试(ap 压测 和 linux 下wrk 压测):.NET 版本
2024/5/27 11:46:47

前言: 上次发布了:Taurus.MVC 性能压力测试(ap 压测 和 linux 下wrk 压测):. Ce 版本 今天计划准备压测一下 . 版本,来测试并记录一下 Taurus.MVC 框架在 . 版本的性能,以便后续持续优化改进。 为了方便对比,本文章的电脑环境和测试思路,尽量和上文保持一致,以便方便对比。 下面来看不同场景下的压测结果,以下测试结果会由两台电脑进行分别测试。 一、旧电脑环境:CPU :Intel(R) Ce(TM) i59400 CPU @ 2.90GHz 内核: 6 逻辑处理器:

C# 冻结Excel窗口以锁定行列、或解除冻结
2024/5/27 11:46:46

在处理大型Excel工作簿时,有时候我们需要在工作表中冻结窗格,这样可以在滚动查看数据的同时保持某些行或列固定不动。冻结窗格可以帮助我们更容易地导航和理解复杂的数据集。相反,当你不需要冻结窗格时,你可能需要解冻它们以获得完整的视野。 下面将介绍如何使用免费.库通过C#实现冻结Excel窗口以锁定行和列,以及如何解除冻结。 免费. Excel库: 本文提供的实现方案需要用到 Free Spire.XLS f . 这个免费库。该库可以在 . 应用程序中快速实现对 Excel 文档的各种操作。可以通过Nug

.NET Core 8 部署在 IIS 的简单三步
2024/5/27 11:46:46

. 部署 IIS 的简单步骤一: 下载 dothostingx.y.zwin.exe ,下载地址:. Downloads (Linux macOS Windows) (microsoft.com) . 部署 IIS 的简单步骤二: 选择对应的版本,点击进入详细页,如 8.0 的版本:版本最好和你的开发环境版本一致, 比如我的开发环境目前是 8.0.3,前几天出了最新的版本,目前是8.0.4版本。 下载右边的 Runtime 版本,找到对应的 Windows 版本的 Hosting Bundle 版本,

[译] .NET 8 中的硬件内在函数(支持 Wasm 和 AVX-512)
2024/5/27 11:46:45

原文链接:https:devblogs.microsoft.comdotdot8hardwareintrinsicsHardware Intrinsics in . 8Tanner Gooding [MSFT]December 11th 2023 译文: . 8 中的硬件内在函数 坦纳·古丁 [MSFT] 2023年12月11日.在通过JIT编译器本质上理解的API提供对附加硬件功能的访问方面有着悠久的历史。这始于2014年的. Framewk,并随着2019年. Ce 3.0的引入而扩展。从那时起,运行

实战指南:使用 xUnit.DependencyInjection 在单元测试中实现依赖注入【完整教程】
2024/5/27 11:46:45

引言 上一篇我们创建了一个Sample.Api项目和Sample.Reposity,并且带大家熟悉了一下Moq的概念,这一章我们来实战一下在xUnit项目使用依赖注入。 Xunit.DependencyInjection Xunit.DependencyInjection 是一个用于 xUnit 测试框架的扩展库,它提供了依赖注入的功能,使得在编写单元测试时可以更方便地进行依赖注入。通过使用 Xunit.DependencyInjection,可以在 xUnit 测试中使用依赖注入容器(比如 Micros

Avalonia 中的样式和控件主题
2024/5/27 11:46:45

在 Avalonia 中,样式是定义控件外观的一种方式,而控件主题则是一组样式和资源,用于定义应用程序的整体外观和感觉。本文将深入探讨这些概念,并提供示例代码以帮助您更好地理解它们。 样式是什么? 样式是一组属性,用于定义控件的外观。它们可以包括背景色、边框、字体样式等。在 Avalonia 中,样式通常以 XAML 格式定义,并应用于特定的控件。StackPanelStackPanel.StylesStyle ="Bder:pointerover"Setter Property="Background"

【Nano Framework ESP32 篇】刷入 nanoCLR 固件以及相关问题
2024/5/27 11:46:44

老周在几个世纪前曾写过树莓派相关的 iOT 水文,之所以没写 Nano Framewk 相关的内容,是因为那时候这货还不成熟,可玩性不高。不过,这货现在已经相对完善,老周都把它用在项目上了——第一个是自制的智能插座,这个某宝上50多块可以买到,搜“esp32 插座”就能找到。一种是 86 型盒子的,带屏幕,背部可以安装继电器,需要自己接线(也不难,把线削出铜丝,然后怼进去,上紧螺丝就行);另一种就类似公牛的那种,无屏幕,一个三脚插孔,不需要引线,程序测试好后直接插电用。第二个给打工仔们用的,买了一块带电池

c# LiteDB的基础用法
2024/5/27 11:46:43

LiteDB 是一个轻量级的嵌入式 NoSQL 数据库,其设计理念与 MongoDB 类似,但它是完全使用 C# 开发的,因此与 C# 应用程序的集成非常顺畅。与 SQLite 相比,LiteDB 提供了 NoSQL(即键值对)的数据存储方式,并且是一个开源且免费的项目。它适用于桌面、移动以及 Web 应用程序。 安装 LiteDB 包 你可以通过 NuGet 包管理器来安装 LiteDB: InstallPackage LiteDB定义数据模型 定义一个 FileModel 类来表示文件信息: usin

02_Web Api使用Jwt
2024/5/27 11:46:43

JWT(JSON Web Token)是一种用于在网络应用之间传递信息的开放标准(RFC 7519)。它使用 JSON 对象在安全可靠的方式下传递信息,通常用于身份验证和信息交换。 在Web API中,JWT通常用于对用户进行身份验证和授权。当用户登录成功后,服务器会生成一个Token并返回给客户端,客户端在接下来的请求中携带该Token来进行身份验证。 使用: 安装包:JWT 1.添加一个Web Api项目 appsettings.json设置"JWT": { "SecretKey": "1234567

gRPC入门学习之旅(六)
2024/5/27 11:46:43

gRPC入门学习之旅(一) gRPC入门学习之旅(二) gRPC入门学习之旅(三) gRPC入门学习之旅(四) gRPC入门学习之旅(五) 3.3、客户端编译生成GRPC类 1. 在“解决方案资源管理器”中,使用鼠标左键选中项目名称“Demo.Grpc.Cmd”,然后单击鼠标右键,在弹出的快捷菜单中选择“重新生成”菜单项。 2. 在“解决方案资源管理器”中,使用鼠标左键选中项目名称“Demo.Grpc.Cmd,在弹出的快捷菜单中选择“在文件资源管理器中打开文件夹”菜单项。如下图。 3.我们打开“文

.NET Emit 入门教程:第六部分:IL 指令:7:详解 ILGenerator 指令方法:分支条件指令
2024/5/27 11:46:42

前言: 经过前面几篇的学习,我们了解到指令的大概分类,如: 参数加载指令,该加载指令以 Ld 开头,将参数加载到栈中,以便于后续执行操作命令。 参数存储指令,其指令以 St 开头,将栈中的数据,存储到指定的变量中,以方便后续使用。 创建实例指令,其指令以 New 开头,用于在运行时动态生成并初始化对象。 方法调用指令,该指令以 Call 开头,用于在运行时调用其它方法。 本篇介绍分支条件指令,该指令通常以 Br、或 B、C 开头,用于在运行分支条件时跳转指令。 分支条件指令介绍: 分支条件指令是在. Em

vmware虚拟机安装CentOS 7.9
2024/5/27 11:46:40

为.6在CentOS7上面做准备,先在vmware虚拟机安装CentOS 7.9 新建CentOS764位的系统 因为CentOS8不更新了,所以安装7;简单就一笔带过了 选择下载好的操作系统的iso文件,下载地址https:mirrs.aliyun.comcentos7.9.2009isosx86_64spm=a2c6h.25603864.0.0.1f90f5adDfcZIZ和方法为centos7.9.2009isosx86_64安装包下载_开源镜像站阿里云 (aliyun.com) 根据

WPF性能优化示例:使用VirtualizingStackPanel提升界面加载速度
2024/5/27 11:46:39

概述:WPF界面绑定和渲染大量数据可能导致性能问题。通过启用UI虚拟化、异步加载和数据分页,可以有效提高界面响应性能。以下是简单示例演示这些优化方法。 在WPF中,当你尝试绑定和渲染大量的数据项时,性能问题可能出现。以下是一些可能导致性能慢的原因以及优化方法:UI 虚拟化: WPF提供了虚拟化技术,可以只在视口内渲染可见的元素,而不是全部渲染。这可以通过使用 VirtualizingStackPanel 或 ListView 控件来实现。ListView VirtualizingStackPanel.Is

掌握 xUnit 单元测试中的 Mock 与 Stub 实战
2024/5/27 11:46:39

引言 上一章节介绍了 TDD 的三大法则,今天我们讲一下在单元测试中模拟对象的使用。 FakeFake Fake 是一个通用术语,可用于描述 stub或 mock 对象。 它是 stub 还是 mock 取决于使用它的上下文。 也就是说,Fake 可以是 stub 或 mockMock Mock 对象是系统中的 fake 对象,用于确定单元测试是否通过。 Mock 起初为 Fake,直到对其断言。Stub Stub 是系统中现有依赖项的可控制替代项。 通过使用 Stub,可以在无需使用依赖项的情况下

01_在NET中使用RabbitMQ
2024/5/27 11:46:38

1.Linux上安装Docken服务器系统版本以及内核版本:cat etcredhatrelease 查看服务器内核版本:uname r 安装依赖包:yum install y yumutils devicemapperpersistentdata lvm2 设置阿里云镜像源:yumconfigmanager addrepo https:mirrs.aliyun.comdockercelinuxcentosdockerce.repo 安装Docker:yum install y dockerce社区版(C

C#的AOP(最经典实现)
2024/5/27 11:46:37

(适用于.. Ce. Framewk) 【目录】0.前言1.第一个AOP程序2.Aspect横切面编程3.一个横切面程序拦截多个主程序4.多个横切面程序拦截一个主程序5.AOP的泛型处理(扩充)6.AOP的异步处理(扩充)7.优势总结8.展望 0.前言 AOP(Aspect iented Programming)是“面向横切面编程”,主要是用来对程序模块进行解耦。怎么理解?? 我们可以把一般的编程理解为“纵向编程”(主程序),比如如下的一个示例代码:public string GetInfo(int i)

.NET服务发现(Microsoft.Extensions.ServiceDiscovery)集成Consul
2024/5/27 11:46:37

随着Aspire发布preview5的发布Microsoft.Extensions.ServiceDiscovery随之更新 服务注册发现这个属于老掉牙的话题解决什么问题就不赘述了这里主要讲讲Microsoft.Extensions.ServiceDiscovery(preview5)以及如何扩展其他的中间件的发现集成 . Microsoft.Extensions.ServiceDiscovery官方默认提供的ConfigDNSYARP三种Provider使用也比较简单 : builder.Service

限制异步HTTP请求并发:简单、有效的20个并发下载控制策略
2024/5/27 11:46:37

概述:通过使用`SemapheSlim`,可以简单而有效地限制异步HTTP请求的并发量,确保在任何给定时间内不超过20个网页同时下载。`ParallelOptions`不适用于异步操作,但可考虑使用`Parallel.FEach`,尽管在异步场景中谨慎使用。 对于并发异步 IO 操作的数量限制,可以使用SemapheSlim,但由于AsParallel 使用的是 PLINQ(Parallel LINQ),而 PLINQ 不太适用于异步操作。因此,我们可以使用异步的 Task.WhenAll 和 Semap

Avalonia中的布局
2024/5/27 11:46:36

Avalonia是一个跨平台的. UI框架,它允许开发者使用C#和XAML来创建丰富的桌面应用程序。在Avalonia中,Alignment、Margin和Padding是非常重要的布局属性,它们与Panel元素一起使用,可以构建出各种复杂的用户界面。 Alignment、Margin 和 Padding是什么Alignment(对齐方式)Alignment决定了元素在Panel中的对齐方式。对于每个方向(水平或垂直),都可以设置对齐方式。水平对齐包括Left、Center、Right和Stretch,而

c# 实现Quartz任务调度
2024/5/27 11:46:36

使用 Quartz.,你可以很容易地安排任务在应用程序启动时运行,或者每天、每周、每月的特定时间运行,甚至可以基于更复杂的调度规则。 官网:http:www.quartzscheduler. 实现任务类 创建一个实现了 IJob 接口的类(MailJobTest),该接口包含一个 Execute 方法,该方法将在作业运行时调用。例如: using Quartz using System using System.Threading.Tasks using UploadLogiData.Utilnamesp

C#正则表达式性能优化:[0-9] vs. \d,轻松提升匹配效率
2024/5/27 11:46:28

概述:在C#中,正则表达式`\d`相对于`[09]`可能效率稍低,因为`\d`包含更广泛的Unicode数字字符。为提高性能,可使用`[09]`并结合编译优化。以下示例演示性能测试及优化,适用于提高正则表达式匹配效率的场景。 在C#中,正则表达式\d涵盖更广泛的 Unicode 数字字符范围,而[09]明确指定了 II 数字字符范围,因此\d可能略显低效。为提高性能,可使用[09]并结合一些优化技巧。 以下是具体的示例源代码: using System using System.Diagnostics u