使用Winform开发自定义用户控件,以及实现相关自定义事件的处理
2024/5/27 11:39:32

在我们一些非标的用户界面中,我们往往需要自定义用户控件界面,从而实现不同的内容展示和处理规则,本篇内容介绍使用Winfm开发自定义用户控件,以及实现相关自定义事件的处理。 1、用户控件的界面分析 对于比较规范的界面,需要进行一定的分析,以便从中找到对应的规则,逐步细化为自定义用户控件的方式。例如对于由下面多个集合组成的界面内容。 我们截取其中之一,也就是由这些内容多个组合而成,集合可以通过布局TableLayoutPanel(表格布局)或者FlowLayoutPanel(顺序流布局)来添加即可。 而其中之

用AI在本地给.NET设计几张壁纸
2024/5/27 11:39:29

AI是当今和未来非常重要的技术领域之一,它在各个行业都有广泛的应用,如医疗保健、金融、教育、制造业等。学习AI可以让你了解和掌握未来技术发展的核心,并为未来的职业发展做好准备。现在有很多开源的Model可以让我们使用,使用这些开源Model在低成本下,我们也能完成自己的任务。 现在我的需求是给公众号设计几张HeadImage,然而我并不擅长设计图形。这时候就是AI发挥作用的时候了。我使用Stable Diffusion Web UI结合开源模型,给.设计几张壁纸。 Stable Diffusion Web

C#泛型进阶:深入解析类型参数约束,优化代码安全性与灵活性
2024/5/27 11:39:28

概述:C#泛型类型参数约束提供了灵活的方式,确保泛型代码满足特定条件。从值类型、引用类型、构造函数到基类、接口等多重约束,为泛型设计提供了更多限制和设计选择。可空参数约束进一步增强了泛型的适用性。这些约束提高了代码的类型安全性和可读性,为开发者提供了更强大的工具。 在C#中,类型参数约束用于对泛型类型参数进行限制。以下是常见的类型参数约束: 1.where T : struct 要求T必须是值类型(结构)。 public struct ExampleStructT where T : struct { T

【OpenVINO】 使用 OpenVINO CSharp API 部署 PaddleOCR 项目介绍
2024/5/27 11:39:28

前言:在之前的项目中,我们已经使用 OpenVINOTM CSharp API 部署 PaddleOCR 全系列模型,但随着PaddleOCRv4版本发布以及OpenVINO CSharp API版本迭代,上一版本的项目已经不再适用。因此在推出的最新项目中,已经完成了对PaddleOCRv4的匹配,并且采用了最新版本的 OpenVINOTM CSharp API,可以更快的实现在不同平台进行部署,减少使用者在使用时的步骤以及问题。目录1. 项目介绍2. 项目环境2.1 NuGet Package2.2

手把手教你在 Windows 环境中搭建 MQTT 服务器
2024/5/27 11:39:27

前言 前些天要对接一家硬件商的设备数据,对方使用的 MQTT 协议点对点透传,所以又赶紧搭建 MQTT 服务器,写 . 程序接收数据等等,今天分享一下如何搭建 MQTT 服务器。 MQTT 协议是什么? MQTT(Message Queuing Telemetry Transpt)是一种轻量级的、基于发布订阅模式的通信协议,专门设计用于在低带宽、不稳定的网络环境下进行物联网设备之间的通信。具有以下特点(优势):轻量级:MQTT 协议设计简单,通信开销小,适合在资源受限的设备上使用,如传感器、嵌入式设备等。

现代WPF界面轻松实现:探秘轻量级WPFUI库,MVVM与依赖注入一体化
2024/5/27 11:39:27

概述:一款名为WPFUI的轻量级开源库,为WPF应用程序提供现代化界面。支持MVVM和Microsoft.Extensions.DependencyInjection,简单上手。无第三方依赖,内置两套皮肤,可自定义样式。适用于一般应用场景,不受MVVM框架限制。通过简单的引用和配置,快速构建现代化WPF应用,提升用户体验 最近要做个小工具软件,发现以前用的WPF界面有点老了,所以在网上找下,发现一个用起来还可以的WPFUI库,MVVM也支持得很好,同时支持微软官方的依赖注入框架Microsoft.Exte

C#12新功能主构造函数:实用,简洁利落
2024/5/27 11:39:26

大家还记得记录(recd)类型吗?记录类型很像一个构造函数,那么类可以像recd类型一样使用吗?C#12就推出了这样的功能,这就是主构造函数。“现在可以在任何 class 和 struct 中创建主构造函数。主构造函数不再局限于 recd 类型。主构造函数参数都在类的整个主体的范围内。为了确保显式分配所有主构造函数参数,所有显式声明的构造函数都必须使用 this() 语法调用主构造函数。将主构造函数添加到 class 可防止编译器声明隐式无参数构造函数。在struct中,隐式无参数构造函数初始化所有字段,

C# 如何读取Excel文件
2024/5/27 11:39:26

当处理Excel文件时,从中读取数据是一个常见的需求。通过读取Excel数据,可以获取电子表格中包含的信息,并在其他应用程序或编程环境中使用这些数据进行进一步的处理和分析。本文将分享一个使用免费库来实现C#中读取Excel数据的方法。具体如下: 准备工作: 在VS中通过Nuget安装免费Excel读写库 – Free Spire.XLS f .. 或者下载产品包后手动导入dll。 实现思路:导入Spire.Xls命名空间加载Excel文件 获取指定工作表,然后再获取其中包含数据的区域 遍历数据区域中的行和

C#创历史成为2023年度编程语言!!!
2024/5/27 11:38:53

大家好,我是沙漠尽头的狼。在朋友圈看到桂素伟大佬发的喜讯截图,站长赶紧翻译向大家报喜,确定了C#是2023年度的编程语言!在TIOBE指数的历史上,C#首次获得了年度编程语言的奖项。祝贺!二十多年来,C#一直是前10名的选手,现在它正在追赶四大语言,它以一年内最大的涨幅(+1.43%)赢得了这一当之无愧的奖项。紧随其后的是Scratch(+0.83%)和Ftran(+0.64%)。C#正在蚕食Java的市场份额,并且在诸如Web应用程序后端和游戏(感谢Unity)等领域中越来越受欢迎。C#可以免费使用(站

【OpenCV】在MacOS上使用OpenCvSharp
2024/5/27 11:38:52

前言OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,它具有C++,Python,Java和MATLAB接口,并支持Windows,Linux,roid和Mac OS。OpenCvSharp是一个OpenCV的 . wrapper,应用最新的OpenCV库开发,使用习惯比EmguCV更接近原始的OpenCV,该库采用LGPL发行,对商业应用友好。1. 项目环境编码环境:Visual Studio Code 程序框架:. 6.0目前在Mac OS上使用C#语言官方提

MQTT 客户端 MQTT.fx 使用说明
2024/5/27 11:38:51

下载官网:https:softblade.deendownload2说明:最后的免费版本是 MQTT.fx 1.7.1,官网已经没有免费的版本下载 MQTT.fx 1.7.1https:nowjava.comdownload44364 【需关注其公众号才能下载】安装一路 Next 即可使用安装好后,直接启动MQTT.fx 点击第 1 步中界面设置按键(齿轮图标)打开新窗口创建一个 MQTT 连接 点击左下角的 + 号新建连接 填写以下项,其它默认:Profile Name: 如 Local_MQTT_Te

DevExpress中TileView的使用
2024/5/27 11:38:49

1、前期准备 VS2019、DevExpress19.2、MySql5.7、FreeSql3.2.808、. Farmewk 4.8 2、创建本次示例中所需数据库及表 我这里建立的数据库为loldb,其下会使用到hero和country两个表3、在VS2019进行代码实现 1、首先在vs2019中建立一个WinFm窗体,并取名TileViewDemo 2、窗体创建完成后引入我们本次会使用到的dll文件 Dev类目dll文件引用时需要我们在系统中确保已经安装了DevExpress19.2 FreeSql类

记一次 .NET某收银软件 非托管泄露分析
2024/5/27 11:38:48

一:背景 1. 讲故事 在我的分析之旅中,遇到过很多程序的故障和杀毒软件扯上了关系,有杀毒软件导致的程序卡死,有杀毒软件导致的程序崩溃,这一篇又出现了一个杀毒软件导致的程序非托管内存泄露,真的是分析多了什么鬼都能撞上。 前几天有位朋友找到过,我他们的程序内存在慢慢的泄露,最后程序会出现崩溃,不知道是什么导致的,让我帮忙看一下怎么回事,简单分析后发现是非托管泄露,让朋友开启了ust并在内存超出预期时抓了一个dump下来,接下来就是分析了。 二:WinDbg 分析 1. 到底是哪里的泄露 相信一直追这个系统的

关于腾讯地图geolocation.getLocation 经常定位失败,定位时间过长的解决方法
2024/5/27 11:38:48

今天遇到个项目,腾讯地图定位出现问题,导致地图无法呈现出最近的目标 这是正常的效果,之前一直出现贵州等地点的信息,查看控制台的网络后,发现腾讯的定位失败,要么就是定位时间过长,要20S左右,但是换EDGE浏览器却能正常加载, 除了EDGE浏览器都会出现这个问题。随后我去查阅腾讯地图接口的信息,找到前端定位组件,发现有一个函数可以根据IP查询“getIpLocation”,但是一番调试之后还是会出现定位失败的情况, 就在苦思又想的情况下,我就想为什么就执着于这个调用方式,不行就只能使用其他的调用方法。 通过

福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
2024/5/27 11:38:47

千里之行,始于足下,若想提高软件编程能力,最最重要的是实践,所谓纸上得来终觉浅,绝知此事要躬行。根据相关【艾宾浩斯遗忘曲线】研究表明,如果不动手实践,记住的东西会很快忘记。为了便于大家查找,特将之前开发的. Ce相关的五大案例整理成文,共计440页,32w字,免费提供给大家,文章底部有PDF下载链接。 ASP. Ce学生信息管理系统 C# ASP. Ce开发学生信息管理系统(一) C# ASP. Ce开发学生信息管理系统(二) C# ASP. Ce开发学生信息管理系统(三) VUE3.0+An

Freezable ---探索WPF中Freezable承载数据的原理
2024/5/27 11:38:25

引言 在之前写的一篇文章【WPF 如何以Binding方式隐藏DataGrid列】中,我先探索了 DataGridTextColumn 为什么不在可视化树结构内?又给出了解决方案,使用 Freezable ,该抽象类是 DependencyObject 的子类,能使用依赖属性在 Xaml 进行绑定,它承载了 DataContext 且有属性变化通知功能,触发 VisibilityConverter转换器,实现了预期功能。 然后有群友问了这样一个问题:这里有两个问题:非可视化树中的元素不能通过 Relat

由浅入深理解C#中的事件
2024/5/27 11:38:23

目录 本文较长,给大家提供了目录,可以直接看自己感兴趣的部分。 前言有关事件的概念示例​ 简单示例​ 标准 . 事件模式​ 使用泛型版本的标准 . 事件模式​ 补充总结 参考前言 前面介绍了C#中的委托,事件的很多部分都与委托类似。实际上,事件就像是专门用于某种特殊用途的简单委托,事件包含了一个私有的委托,如下图所示:有关事件的私有委托需要了解的重要事项如下: 1、事件提供了对它的私有控制委托的结构化访问。我们无法直接访问该委托。 2、事件中可用的操作比委托要少,对于事件我们只可以添加、删

像素和DIP的区别和应用
2024/5/27 11:38:22

——什么是DIP(Device Independent Units,设备独立像素)?是指在不考虑具体设备的屏幕分辨率和物理尺寸的情况下定义的一种长度单位,通常用于描述在不同设备上的显示效果。但是,在实际应用中,DIP的值仍然会受到屏幕分辨率和物理尺寸的影响。 ——什么是像素?像素是图像处理中的基本单位,是图像中最小的单元,是一个由红、绿、蓝三种颜色组成的点。 一个像素包含一个颜色值,表示该点的颜色信息。 在计算机图形学中,像素也是计算机屏幕或图像处理器中用于表示图像的基本单元。 ——像素和分辨率的关系

.Net FrameWork 框架下使用System.Net.Mail封装类 发送邮件失败:服务器响应:5.7.1 Client was not authenticated 解决方案
2024/5/27 11:38:22

偶然兴起,想做一个后台监控PLC状态的服务。功能如下:监控到PLC状态值异常后触发邮件推送,状态改变后只推送一次。开始使用的是.6.0开发框架开发,一切都很顺利,邮件也能正常推送。但由于现场工控机系统不是WIN10 20H2的最新版本,导致系统未安装.6.0 Runtime。而我也没有再去安装的打算。我重新使用了. FrameWk4.7 框架进行开发。开发完成后,我以为能正常运行。但出现了不可预知的错误——服务器响应:5.7.1 Client was not authenticated。下面分别是2个框架

【OpenCV】在 Mac OS 上使用 EmguCV
2024/5/27 11:38:21

前言OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,它具有C++,Python,Java和MATLAB接口,并支持Windows,Linux,roid和Mac OS。 Emgu CV是OpenCV图像处理库的跨平台 . 包装器。允许从 . 兼容语言调用OpenCV函数。但是网上目前关于在Mac OS上使用EmguCV的教程较少,而我后续推出的OpenVINO C# API项目将支持Mac OS系统,为了大家后续能够使用,特出一期教程来演示一下Mac OS上使用E

Ef Core花里胡哨系列(9) 阴影属性,有用还是没用?
2024/5/27 11:38:20

Ef Ce花里胡哨系列(9) 阴影属性,有用还是没用? Ef Ce中提供了一些有趣的实现,例如阴影属性!虽然大部分时候我还没有遇到应用场景,但是不妨碍我们了解一下。 阴影属性是EF Ce中的一个特性,它允许你在模型中定义一个属性,但是这个属性并不在对应的CLR类中。阴影属性只存在于EF Ce的模型中,你可以在查询和保存数据时使用它,但是你不能直接在你的实体类中访问它。 阴影属性通常用于模型和数据库中存在但在实体类中不存在的字段。例如,你可能有一个"LastUpdated"的字段在数据库中,但你并不想在你的

Ef Core花里胡哨系列(10) 动态起来的 DbContext
2024/5/27 11:38:20

Ef Ce花里胡哨系列(10) 动态起来的 DbContext 我们知道,DbContext有两种托管方式,一种是AddDbContext和AddDbContextFacty,但是呢他们各有优劣,例如工厂模式下性能更好呀等等。那么,我们能否自己托管DbContext呢? Github Demo:动态起来的 DbContext 场景: 结合我们之前的文章 [Ef Ce花里胡哨系列(5) 动态修改追踪的实体、动态查询] 假设一个应用内有很多的子应用,且都需要更新追踪的动态实体,那么很多表在重置OnModelC

ServiceStack.Redis系列破解
2024/5/27 11:38:19

ServiceStack.Redis免费版有个每小时6000次访问限制,网上目前的破解方式都是dnspy修改源码或者Github上下载源码修改,这样的方式不是不好,主要是不方便NUGET版本管理和更新。 反编译看了下注册逻辑,发现很简单就是LicenseKey类:public class LicenseKey {public string Ref { get set }public string Name { get set }public LicenseType Type { get set }pu

Nuget 输出资源文件
2024/5/27 11:38:19

组件经常有一些文件环境依赖,提升内聚,可以将文件(exe、dll等)放在到Nuget包内自动输出、启动相应的环境 通过csproj文件配置,Nuget包自动输出到编译目录下。如上图,vcomp140d.dll是Nuget包内的文件。项目NugetContentFilesDemo引用NugetContentFiles包后,编译时能在输出目录下自动生成vcomp140d.dll文件。 方案一 通过ContentFiles输出 设置文件属性为生成内容、复制输出到目录 ,再补充PackageCopyToOutpu

Ef Core花里胡哨系列(5) 动态修改追踪的实体、动态查询
2024/5/27 11:38:18

Ef Ce花里胡哨系列(5) 动态修改追踪的实体、动态查询 同样还是IModelCacheKeyFacty,不过这次要采用主动刷新的方式。 实现DbContext 动态实体,根据配置等生成动态类型来当作数据库实体使用,当配置修改时,可以调用DynamicModelCacheKeyFacty.Refresh()刷新DbContext。动态构建部分不提供,我们将在其它的地方进行讨论。public class SampleDbContext(DbContextOptionsSampleDbContext opt

ASP.NET Core 鉴权授权二(自定义token)
2024/5/27 11:38:18

TokenAuthenticationHler.cs 首先自定义一个类TokenAuthenticationHler,然后需要继承IAuthenticationHler接口 具体代码: public class TokenAuthenticationHler : IAuthenticationHler {private AuthenticationScheme _schemeprivate HttpContext _context summary 鉴权初始化 summary param name="sch

ASP.NET Core 鉴权授权三(自定义授权策略、多授权策略、多鉴权架构)
2024/5/27 11:38:18

Program.cs #region 授权 builder.Services.AddAuthization(option = {添加自定义授权策略option.AddPolicy("MyPolicy"p = p.RequireClaim(ClaimTypes.NameIdentifier"1")) }) #endregionTestController.cs 应用自定义授权策略 [ApiController] [Route("api[controller]")] public class TestCont

终端上的Github Copilot和IDE上的Github Copilot
2024/5/27 11:38:17

GitHub Copilot Github Copilot文档地址:Github Copilot文档 IDE上的 GithubCopilot VSCode安装VSCode:如果您还没有安装VSCode,请前往VSCode官方网站下载并安装最新版本的VSCode。 安装GitHub Copilot插件:在VSCode中,点击左侧的扩展图标(四个方块组成的正方形),搜索并安装"GitHub Copilot"插件。 配置GitHub Copilot:安装完插件后,VSCode会提示您登录GitHub账号并授权G

Ef Core花里胡哨系列(4) 多租户
2024/5/27 11:38:17

Ef Ce花里胡哨系列(4) 多租户当然,我们要考虑设计问题,例如,切换Schema或者改变数据库时,Ef Ce同样也会刷新改实体的缓存,所以,首次查询将会很慢,不适合大表。基于Schema实现多租户 在我的上一篇博客中 [Ef Ce花里胡哨系列(3) 动态修改实体对应的表(分表)、多租户] 中我们实现了如何分表,同理,我们可以用近似的方法来切换表的Schema,只需要一点很小的改动。 public class SampleDbContext(DbContextOptionsSampleDbContext

聊一聊 C# 的线程本地存储TLS到底是什么
2024/5/27 11:38:16

一:背景 1. 讲故事 有朋友在后台留言让我说一下C#的 ThreadStatic 线程本地存储是怎么玩的?这么说吧,C#的ThreadStatic是假的,因为C#完全是由CLR(C++)承载的,言外之意C#的线程本地存储,用的就是用C++运行时提供的 __declspec(thread) 或 __thread 来虚构的一套玩法,这一篇我们就来简单聊一聊。 二:C# 的线程本地存储 1. 虚构在哪里 在 C# 中使用ThreadStatic就可以将变量和线程进行绑定,参考代码如下:internal cla