
.Net技术
文章平均质量分 88
C# , .Net,系列开发技术
老码识途呀
专心写文,无问西东
展开
-
推荐一款Excel读写神器之MiniExcel入门详解
MiniExcel是.Net基金会旗下的项目,是一款简单、高效避免OOM(Out of Memory)的.NET处理Excel查、写、填充数据工具。原创 2025-04-29 12:00:00 · 789 阅读 · 0 评论 -
推荐一款Ioc容器之Ninject入门详解
随着软件的不断发展,功能越来越复杂,为了将复杂的逻辑简单化,解耦成了架构师,工程师们经常提起的话题,今天我们就以一个简单的小例子,来看一下解耦的好处,顺便介绍一款Ioc容器Ninject的应用,仅供学习分享使用,如有不足之处,还请指正。原创 2025-04-08 12:00:00 · 939 阅读 · 0 评论 -
ASP.NET Core WebApi+React UI开发入门详解
在前段时间,有粉丝反馈能否写一篇基于ASP.NET Core Web Api+React UI进行Web开发的文章,经过查阅相关资料,发现Visual Studio 2022已经集成相关模板,可以在Visual Studio中直接创建项目项目,今天以一个小例子,简述ASP.NET Core Web Api+React UI开发系统的基本步骤,仅供学习分享使用,如有不足之处,还请指正。原创 2025-03-25 00:55:54 · 664 阅读 · 0 评论 -
Avalonia系列文章之布局简介
在UI设计中,页面布局非常重要,良好的布局不仅可以有效的利用空间,还能提升交互体验,以达到事半功倍的效果。所以对于Avalonia UI初学者来说,布局控件的了解与学习也非常的重要,今天以一些小例子,简述Avalonia UI框架中布局控件的使用,仅供学习分享使用,如有不足之处,还请指正。原创 2025-02-10 22:23:16 · 1156 阅读 · 0 评论 -
Avalonia系列文章之控件简介
在图形用户页面出现之前,程序的输入输出都是通过命令行进行,输入输出的数据都是最原始的方式。在图形用户页面出现以后,输入输出变得越来越友好,且丰富多样,不仅可以输出格式化表格,图表,以及图像等形式,还能接受用户的输入指令,而这些输入输出都是通过控件实现的。按钮(Button),按钮常用于在单击或触摸时触发操作。它们可以包含文本、图标或两者,并经常用于提交表单、打开对话框或执行命令等任务。文本框(TextBox),文本框允许用户输入和编辑文本。它们用于捕获用户输入,例如用户名、密码或任何形式的文本信息。原创 2025-02-06 14:15:49 · 1101 阅读 · 0 评论 -
Avalonia系列文章之再试牛刀
通过前一篇文章,已经了解了AvaloniaUI的环境安装以及项目创建,磨刀不误砍柴工,今天继续进行Avalonia基础知识学习,如有不足之处,还请指正。原创 2025-01-25 12:00:00 · 977 阅读 · 0 评论 -
Avalonia系列文章之小试牛刀
Avalonia是一款开源的跨平台UI框架,它是.NET基金会的一部分,专为创建灵活且美观的用户界面而设计。Avalonia支持多种应用程序开发平台,包括Windows、Linux、macOS、iOS、Android和WebAssembly。同时Avalonia基于现代.NET技术栈,后台允许采用C#或其他.NET语言编写代码,UI页面采用XAML语言,同样兼容WPF的样式系统,布局系统和绑定基础设施模型,之前学习WPF的同学可以无缝衔接,几乎是零成本学习。原创 2025-01-18 00:51:19 · 868 阅读 · 0 评论 -
WinForm之MDI窗体开发详解
在WinForm开发中,如果有多个页面进行展示,通常采用菜单栏+容器布局方式(点击菜单栏,打开新的页面,并在容器中显示)。今天以一个简单的小例子,简述如何通过菜单栏和MDI容器实现页面的布局,仅供学习分享使用,如有不足之处,还请指正。原创 2025-01-07 23:06:59 · 1152 阅读 · 0 评论 -
进程间通信组件ZeroMQ详解
在一些复杂的项目中,往往会由不同功能的程序组成,且在程序运行期间,各个程序还需要进行互相通信,实现进程间通信的方式有很多种,最常用的就是通过消息中间件,比如RabbitMQ,Kafka,以及ZeroMQ等,而RabbitMQ和Kafka这两款中间件往往都需要独立安装步骤才能使用,ZeroMQ却不需要独立安装部署,而是作为动态库直接在程序中引用即可。今天以一个简单的小例子,简述ZeroMQ的常见用法,仅供学习分享使用,如有不足之处,还请指正。原创 2024-12-30 12:00:00 · 1503 阅读 · 0 评论 -
WPF开发框架Caliburn.Micro详解
MVVM 代表 Model、View、View Model。基本思想是创建一个三层用户界面。它的主要用途是将 UI 的可视部分(表单、按钮和其他控件)尽可能与处理 UI 命令的逻辑分开。对于 WPF 应用程序,视图由 XAML 代码和代码隐藏表示,这实质上是用 C# 编写 XAML 代码的方法。此层不应执行任何处理。View Model 是功能性 UI 层,它接受来自 UI 的命令并处理这些命令。第三层是 Model,它保存数据模型。原创 2024-12-16 12:00:00 · 1258 阅读 · 0 评论 -
在WPF程序中实现PropertyGrid功能
SelectedObject,设置PropertyGrid控件选择的对象,赋值后,控件将显示对象所有public修饰的属性。SelectedObjects,设置PropertyGrid控件显示的对象列表,为数组类型。赋值后,将显示所有对象公共的public修饰的属性。BackColor 更改其背景色。HelpBackColor 更改助窗口背景色。HelpForeColor 更改助窗口字体颜色。HelpVisible 显示隐藏帮助窗口。ToolbarVisible 显示隐藏工具栏。原创 2024-11-23 01:02:15 · 1510 阅读 · 0 评论 -
基于WPF开发视频播放器
在实际应用中,视频播放功能在很多软件中都会用到,将音频和视频集成到应用程序中不仅可以增强用户体验,还能起到事半功倍的效果。今天本文以一个简单的小例子,简述如何通过WPF中的MediaElement开发视频播放器,仅供学习分享使用,如有不足之处,还请指正!原创 2024-11-18 12:00:00 · 1520 阅读 · 0 评论 -
不可不知的WPF动画(Animation)
动画是快速循环播放一系列图像(其中每个图像与下一个图像略微不同)给人造成的一种幻觉。当图像播放速度超过了人眼识别的速度,就会感觉这些图像形成了一个连贯的变化的场景。在电影中,摄像机每秒钟拍摄许多照片(每一张成为一帧),便可给人造成这种错觉。不同的帧速率会影响视频的流畅度和清晰度。24帧/秒:这是电影行业标准的帧速率,尤其在拍摄无声电影时期,24帧/秒被广泛采用以节省胶片。尽管如此,24帧/秒在今天仍然被一些艺术家和独立电影制作人使用,以追求特定的视觉效果。25帧/秒。原创 2024-09-21 16:30:49 · 1613 阅读 · 0 评论 -
不可不知的WPF转换(Transform)
转换(Transform)定义如何将控件从一个坐标空间映射或转换到另一个坐标空间。2D转换可以通过Matrix来实现,Matrix是一个3行3列的double值的集合。不过WPF还提供了多个Transform类,以便在不知道基础矩阵结构配置的情况下转换对象。RotateTransform,按指定的角度(Angle)旋转元素。ScaleTansform,按指定的坐标方向(ScaleX和ScaleY)缩放元素。SkewTransform,按指定的角度(AngleX和AngleY)倾斜元素。原创 2024-09-14 22:39:25 · 1208 阅读 · 0 评论 -
不可不知的WPF几何图形(Geometry)
几何图形可以随意和进行缩放而不变形,这是和位图最大的差异。Geometry类及其派生类(PathGeometry,EllipseGeometry,CombinedGeometry)可以用于描述2D形状的几何图形。Geometry对象可以是矩形和椭圆形等简单图形,也可以是由两个或者多个几何对象创建的复合图形,如:PathGeometry和StreamGeometry等,可以用于绘制曲线或其他复杂图形。原创 2024-09-08 11:17:19 · 1693 阅读 · 0 评论 -
不可不知的WPF形状(Shape)
在WPF开发中经常需要进行绘制图形,可以利用Shape类型绘制基本的形状,而且Shape派生自FrameworkElement,属于UI元素范畴,可以直接利用XAML进行绘制。本文通过一些简单的小例子,简述如何通过Shape类绘制形状,仅供学习分享使用,如有不足之处,还请指正。Shape类位于System.Windows.Shapes命名空间,而上篇文章介绍的Brush位于System.Windows.Media命令空间,由此可见两者所属的分类不同。原创 2024-09-04 00:30:06 · 1128 阅读 · 0 评论 -
不可不知的WPF画笔(Brush)
在WPF中,屏幕上的所有内容,都是通过画笔(Brush)画上去的。SolidColorBrush使用纯Color绘制区域,有多种方法可以制定纯色画笔的颜色,如使用A(Alpha)R(红色)G(绿色)B(蓝色)颜色通道来定义颜色,或者使用系统预定义颜色。或者通过Color属性进行赋值。Opacity,表示画笔的透明度, Opacity 的值为 0 表示完全透明,1 表示完全不透明,0.25表示25%的透明。以上就是《不可不知的WPF画笔(Brush)》的全部内容,希望可以抛砖引玉,一起学习,共同进步!原创 2024-08-28 23:20:43 · 1416 阅读 · 0 评论 -
.NET辅助角色服务入门简介
处理 CPU 密集型数据,比如文件检索或图片识别等。在后台对工作项进行排队,比如:批量发送短信或邮件等操作。按计划执行基于时间的操作,比如:间隔2秒执行一次某操作。后台服务处理通常不涉及用户界面 (UI),但可以围绕它们来构建 UI。在早期使用 .NET Framework 时,Windows 开发人员可能出于这些目的创建 Windows 服务。现在通过 .NET,你可以使用 BackgroundService(它是 IHostedService 的实现)或实现自己的服务。原创 2024-08-15 17:09:47 · 1011 阅读 · 0 评论 -
推荐一款将控制台程序部署到Windows服务的组件
Topshelf是一款开源的用于托管.NET编写的应用程序到Windows服务的框架,通过Topshelf,可以非常方便的将普通控制台应用程序,转换成Winodw服务,并注册到Windows服务控制管理器(SCM)中。原创 2024-07-23 20:10:04 · 1078 阅读 · 0 评论 -
推荐一种批量判断文件是否存在的快速办法
在日常开发中,我们经常需要和文件打交道,特别是桌面开发,有时候就会需要加载大批量的文件,而且可能还会存在部分文件缺失的情况,那么如何才能快速的判断文件是否存在呢?如果处理不当,且文件数量比较多的时候,可能会造成卡顿等情况,进而影响程序的使用体验。今天就以一个简单的小例子,简述两种不同的判断文件是否存在的方式以及效率比较。原创 2024-07-18 22:08:55 · 1108 阅读 · 0 评论 -
推荐一款Win11主题WPF UI框架
通过WPF Gallery,可以参考官方示例,提升自己的编程能力,同样有助于WPF开发者们开发出更符合现在设计风格、更美观的界面。最近在微软商店,官方上架了新款Win11风格的WPF版UI框架【WPF Gallery Preview 1.0.0.0】,这款应用引入了前沿的Fluent Design UI设计,为用户带来全新的视觉体验。在微软商店有很多免费的应用程序可供安装,且内容丰富多样,不仅包含常用软件,还有开发工具,类库等内容,应有尽有。操作系统,需要升级到Win11才可以。原创 2024-07-04 11:53:21 · 1391 阅读 · 0 评论 -
C# 通过Win32API设置客户端系统时间
在日常工作中,有时可能会需要获取或修改客户端电脑的系统时间,比如软件设置了Licence有效期,预计2024-06-01 00:00:00到期,如果客户手动修改了客户端电脑时间,往前调整了一年,则软件就可以继续使用一年,如此循环往复,则Licence将形同虚设。所以有时候需要校验客户端电脑时间和服务器端时间,是否一致,如果不一致,则需要修改客户端电脑时间或进行系统提示。本文以一个简单的小例子,简述如何通过C#获取和设置客户端电脑的系统时间,仅供学习分享使用,如有不足之处,还请指正。原创 2024-06-17 21:34:34 · 956 阅读 · 0 评论 -
基于WPF开发动态可交互混淆矩阵
最近在项目中,为了算法结果的可视化,需要用到混淆矩阵(Confusion Matrix),而网上资源大多是基于Python绘制的混淆矩阵,并且是输出图片格式,并不能响应用户点击,今天以一个简单的小例子,简述如何通过WPF绘制混淆矩阵,并可响应用户点击事件,仅供学习分享使用,如有不足之处,还请指正。在机器学习中, 混淆矩阵是一个误差矩阵, 常用来可视化地评估监督学习算法的性能. 混淆矩阵大小为 (n_classes, n_classes) 的方阵, 其中 n_classes 表示类的数量. 这个矩阵的每一行表原创 2024-06-03 23:34:38 · 886 阅读 · 0 评论 -
.NET数据交互之生成和读取YAML文件
最近在项目中,业务上需要与Python进行交互,而Python程序用的配置文件主要是YAML,程序以命令行形式运行,前端页面由C#通过WPF开发完成。现在需要通过C#生成YAML配置文件,并经过Python读取和修改后,再次由C#进行读取。在C#开发程序中,主要用的配置文件主要是XML,JSON,INI等,很少用到YAML,今天以一个简单的小例子,简述如何通过C#程序,进行YAML文件的读取和写入,仅供学习和参考使用,如有不足之前,还请指正。原创 2024-05-31 22:08:48 · 1562 阅读 · 2 评论 -
基于WPF+Sqlite开发抽奖软件【内附源码】
在很早之前,就想过开发一款抽奖软件,却一直没有实际去做,最近经过一段时间的准备,终于开发出了一款基于WPF+Sqlite版的抽奖软件,包括客户端和管理端。本项目主要是为了熟悉WPF开发流程,仅供学习分享使用,如有不足之处,还请指正。根据抽奖软件的功能进行拆解,主要包括:Gift(礼品表),Lucky(奖品表),User(抽奖用户表),Winner(中奖表),各个表详细创建语句如下所示:Winner(中奖表),主要包括中奖用户ID,奖品ID,中奖时间等。原创 2024-05-22 17:38:13 · 877 阅读 · 1 评论 -
聊聊大家眼中的.NET现状与未来
NET类库在不同应用和应用类型中共享功能,无论构建哪种类型的应用,代码和项目文件看起来都一样,可以访问每个应用的相同运行时、API和语言功能。.NET Core:是微软新推出的一种开源和具备跨平台能力的应用程序开发架构(Application Framework),支持在linux、windows、mac操作系统平台去构建应用程序,.Net core支持UWP和ASP.NET Core,ASP.NET Core是用于构建web应用程序,而UWP是用于windows pc和移动应用程序;原创 2024-04-13 23:53:59 · 1455 阅读 · 0 评论 -
详解C#之WinForm版利用RichTextBox 制作文本编辑器【附源码】
Windows窗体中的RichTextBox控件用于显示,输入和操作格式化的文本,RichTextBox除了拥有TextBox控件的所有功能外,还可以显示字体,颜色,链接,从文件中读取和加载图像,以及查找指定的字符。在Windows应用程序开发中,刚刚介绍了WPF版的利用RichTextBox实现文本编辑器,今天继续推出WinForm版的利用RichTextBox实现文本编辑器。以上就是【详解C#之WinForm版利用RichTextBox 制作文本编辑器】的全部内容,关于更多详细内容,可参考官方文档。原创 2024-03-05 23:00:19 · 3670 阅读 · 0 评论 -
浅谈WPF之Binding数据校验和类型转换
在WPF开发中,Binding实现了数据在Source和Target之间的传递和流通,就像现实生活中的一条条道路,建立起了城镇与城镇之间的衔接,而数据校验和类型转换,就像高速公路之间的收费站和安检站。那在WPF开发中,如何实现数据的校验和类型转换呢?在数据绑定时,如果Source端的数据类型和Target端的数据类型不一致时,就需要用到数据类型转换,如:true/false与显示/隐藏之间的转换等,要实现数据转换,需要用到Binding的Converter属性。,仅供学习分享使用,如有不足之处,还请指正。原创 2024-03-04 21:15:37 · 1165 阅读 · 0 评论 -
浅谈WPF之DataGrid动态生成列
在日常开发中,DataGrid作为二维表格,非常适合数据的展示和统计。通常情况下,一般都有固定的格式和确定的数据列展示,但是在某些特殊情况下,也可能会需要用到动态生成列。本文以一些简单的小例子,简述在WPF开发中,如何动态生成DataGrid的行和列,仅供学习分享使用,如有不足之处,还请指正。原创 2024-02-22 23:40:47 · 2303 阅读 · 0 评论 -
浅谈WPF之利用RichTextBox实现富文本编辑器
在实际应用中,富文本随处可见,如留言板,聊天软件,文档编辑,特定格式内容等,在WPF开发中,如何实现富文本编辑呢?本文以一个简单的小例子,简述如何通过RichTextBox实现富文本编辑功能,主要实现复制,剪切,粘贴,撤销,重做,保存,打开,文本加粗,斜体,下划线,删除线,左对齐,居中对齐,右对齐,两端对齐,缩进,减少缩进,项目符号,数字符号,上标,下标,背景色,前景色,图片,打印等功能,仅供学习分享使用,如有不足之处,还请指正。原创 2024-02-19 08:00:00 · 2670 阅读 · 0 评论 -
浅谈WPF之UniformGrid和ItemsControl
在日常开发中,有些布局非常具有规律性,比如相同的列宽,行高,均匀的排列等,为了简化开发,WPF提供了UniformGrid布局和ItemsControl容器,本文以一个简单的小例子,简述,如何在WPF开发中应用UniformGrid和ItemsControl实现均匀的布局,仅供学习分享使用,如有不足之处,还请指正。原创 2024-01-31 01:20:14 · 2891 阅读 · 0 评论 -
浅谈WPF之样式与资源
WPF通过样式,不仅可以方便的设置控件元素的展示方式,给用户呈现多样化的体验,还简化配置,避免重复设置元素的属性,以达到节约成本,提高工作效率的目的,样式也是资源的一种表现形式。两个按钮使用同一个资源【背景图片】,只是一个采用静态资源引用,一个采用动态资源引用,当资源发生改变时,一个不改变,一个实时变化。WPF不仅支持传统的程序级的资源,还有独具特色的对象级资源,每一个界面元素,都可以拥有自己的资源,并被子元素共享。当鼠标进入时,字体变大,当鼠标离开时,字体恢复,如下所示:。原创 2024-01-27 00:08:34 · 1605 阅读 · 0 评论 -
浅谈WPF之UI布局
如果Canvas是窗口主元素(即最外层的布局面板是Canvas),用户改变窗口大小时,Canvas也会随之变化,子元素的位置也会随之移动,以保证相对于Canvas的位置属性不变。如果包含的元素超过了面板空间,它只会截断多出的内容。Width,Height,MinWidth,MinHeight,MaxWidth,MaxHeight:分别用来设置StackPanel的宽,高,最小宽,最小高,最大宽,最大高。Canvas通过设置Left,Top,Bottom,Right等属性的值,来设置子元素的位置。原创 2024-01-24 22:50:46 · 2147 阅读 · 0 评论 -
浅谈WPF之Popup弹出层
默认情况下,当IsOpen属性为true时,将一直处于打开状态,直到属性变为false。在日常开发中,当点击某控件时,经常看到一些弹出框,停靠在某些页面元素的附近,但这些又不是真正的窗口,而是页面的一部分,那这种功能是如何实现的呢?Popup(弹出层),Popup 控件提供一种在单独窗口中显示内容的方法,该窗口相对于指定元素或屏幕坐标在当前应用程序窗口上浮动。当ToggleButton取消选中时,隐藏弹出层。Popup控件,默认支持淡入,滑入等动画效果,,仅供学习分享使用,如有不足之处,还请指正。原创 2024-01-10 17:23:10 · 5160 阅读 · 0 评论 -
福利来袭,.NET Core开发5大案例,30w字PDF文档大放送!!!
千里之行,始于足下,若想提高软件编程能力,最最重要的是实践,所谓纸上得来终觉浅,绝知此事要躬行。根据相关【艾宾浩斯遗忘曲线】研究表明,如果不动手实践,记住的东西会很快忘记。为了便于大家查找,特将之前开发的.Net Core相关的五大案例整理成文,共计440页,32w字,免费提供给大家,文章底部有PDF下载链接。学习编程,从关注【老码识途】开始,为大家分享更多文章!ASP.NET Core MVC商城系统。或者通过优快云资源。原创 2024-01-04 22:51:40 · 1210 阅读 · 0 评论 -
浅谈WPF之ToolTip工具提示
当用户将鼠标指针移动到具有工具提示的元素上时,将在一段指定的时间内显示一个包含工具提示内容(例如,介绍控件功能的文本内容)的窗口。Placement的值是一个枚举,常用的有:Bottom,Top,Left,Right,Center等。以上示例,工具提示为一个图标,一个文本提示,水平排列。这就是本文需要介绍的ToolTip【工具提示】内容,本文以一些简单的小例子,简述如何在。以上就是【浅谈WPF之ToolTip工具提示】的全部内容,希望能够一起学习,共同进步。,仅供学习分享使用,如有不足之处,还请指正。原创 2023-12-27 23:11:08 · 2419 阅读 · 0 评论 -
浅谈WPF之DataGrid过滤,分组,排序
使用过Excel的用户都知道,Excel可以方便的对数据进行分组,过滤,排序等操作,而在WPF中,默认提供的DataGrid只有很简单的功能,那么如何才能让我们开发的DataGrid,也像Excel一样具备丰富的客户端操作呢?今天就以一个简单的小例子,简述如何在WPF中实现DataGrid的过滤,筛选,排序等功能。当列表中元素数量发生变化时,可以实时的通知DataGrid进行刷新。注意:构造函数中的方法,用于创建Students列表,包含100名学生,分别对应不同的编号,姓名,年龄,性别,班级等信息。原创 2023-12-22 21:59:29 · 1804 阅读 · 0 评论 -
浅谈WPF之装饰器实现控件锚点
装饰器在 AdornerLayer 中呈现,它是始终位于装饰元素或装饰元素集合之上的呈现表面。使用过visio的都知道,在绘制流程图时,当选择或鼠标移动到控件时,都会在控件的四周出现锚点,以便于修改大小,移动位置,或连接线等,那此功能是如何实现的呢?在WPF开发中,想要在控件四周实现锚点,可以通过装饰器来实现,今天通过一个简单的小例子,简述如何在WPF开发中,应用装饰器,仅供学习分享使用,如有不足之处,还请指正。以上就是浅谈WPF之装饰器实现控件锚点的全部内容,希望可以抛砖引玉,一起学习,共同进步。原创 2023-12-17 07:30:00 · 1493 阅读 · 0 评论 -
浅谈WPF之控件拖拽与拖动
使用过office的visio软件画图的小伙伴都知道,画图软件分为两部分,左侧图形库,存放各种图标,右侧是一个画布,将左侧图形库的图标控件拖拽到右侧画布,就会生成一个新的控件,并且可以自由拖动。那如何在WPF程序中,实现类似的功能呢?在控件对象的MouseDown,MouseMove,MouseUp三个事件中,实现控件的拖动效果。以上就是WPF之控件拖拽与拖动的全部内容,希望能够一起学习,共同进步。,仅供学习分享使用,如有不足之处,还请指正。注意,在页面布局中,为图标库中的。原创 2023-12-08 12:00:00 · 4330 阅读 · 4 评论 -
浅谈WPF之各种Template
前几天写了一篇文章【浅谈WPF之控件模板和数据模板】,有粉丝反馈说这两种模板容易弄混,不知道什么时候该用控件模块,什么时候该用数据模板,以及template和itemtemplate之间的关系等,今天专门写一篇文章,简述WPF中各种模板及其相互关系。管理Items的排列方式,如,ComboBox默认是竖直排列的,我们要横着排列,只需要定义ItemsPanel为WrapPanel,就可以了。但是,只负责显示,而不能管理如何显示,如果我们要内容横向排列,就要用到ItemsPanel。原创 2023-11-23 08:00:00 · 1942 阅读 · 0 评论