C#学习笔记及实例
文章平均质量分 72
C#学习笔记及实例
dalong10
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
WPF:SQLServer数据库基础操作
数据库连接管理:打开/关闭SQL Server数据库连接数据展示:ListBox显示数据(格式化文本)ListView绑定数据显示DataGrid绑定数据显示CRUD操作:添加:使用SqlCommand和存储过程两种方式删除:根据ID删除记录修改:更新指定ID的记录查询:按条件查询(年龄在10-50之间)ORM支持:使用Entity Framework进行数据操作。原创 2026-09-10 17:45:49 · 42 阅读 · 0 评论 -
WPF:DataGrid样式
隔行变色:奇数行显示为LightBlue,偶数行显示为LightYellow选中状态反馈:行或单元格被选中时背景变为蓝色失去焦点状态:当DataGrid失去焦点但仍有选中项时,背景变为粉色条件文字颜色:Name列中,值为"张三"时显示为OrangeRed,"王五"时显示为Magenta数据绑定:显示Id、Name、Age三列数据。原创 2026-09-07 16:55:01 · 267 阅读 · 0 评论 -
WPF:MVVM 示例
这是一个完整的WPF MVVM示例程序,展示了MVVM设计模式下的各种数据绑定、命令绑定和控件交互技术。原创 2026-09-05 08:30:00 · 265 阅读 · 0 评论 -
WPF:文件/文件夹选择对话框
打开文件对话框(OpenFileDialog):使用Win32标准对话框选择图片文件保存文件对话框(SaveFileDialog):使用Win32标准对话框保存BMP图像文件夹浏览对话框(FolderBrowserDialog):使用WinForms组件选择文件夹通用打开文件对话框(CommonOpenFileDialog):使用Windows API Code Pack选择文件夹。原创 2026-09-04 09:16:05 · 471 阅读 · 0 评论 -
WPF:箭头绘制程序
通过重写DrawCore方法自定义渲染使用DrawingContext进行低级图形绘制。原创 2026-09-03 09:01:26 · 216 阅读 · 0 评论 -
WPF:3D型材模型
本文介绍了使用HelixToolkit在WPF中构建3D型材模型的实现方法。在VS2022和.NET Framework 4.8环境下,通过TubeVisual3D创建螺旋管道主体结构,配合SphereVisual3D添加节点球体,并构建六边形底座和交叉支撑增强模型工程感。系统提供旋转(手动/自动)、视图调整、模型导出(支持3DS/STL/OBJ等格式)等功能,支持鼠标交互操作(左键旋转、右键平移、滚轮缩放)。文章包含完整的XAML界面布局和C#核心代码实现,展示了3D模型的构建过程及交互功能开发。原创 2026-08-10 09:56:10 · 312 阅读 · 0 评论 -
Savitzky-Golay 的C# 实现
Savitzky-Golay滤波器是一种基于局部多项式回归的数字滤波器,由Savitzky和Golay于1964年提出。相比传统滤波方法,它能在平滑噪声的同时更好地保持信号特征,适用于快速变化信号的降噪处理。其核心是通过滑动窗口对数据进行多项式拟合,窗口大小和多项式阶数是关键参数:小窗口适合快速变化信号,低阶多项式(2-3阶)适合平滑信号,高阶多项式(4-5阶)能处理复杂特征但可能过拟合。文中提供了C#实现示例,包括系数计算和滤波应用,并推荐使用Altaxo等开源库以获得更稳定的性能。该滤波器在信号处理、金原创 2026-08-09 10:43:27 · 214 阅读 · 0 评论 -
WPF:3D坐标轴与圆柱体
本文介绍了在VS2022+.Net Framework4.8环境下使用HelixToolkit3.12进行3D图形开发的技术要点。主要内容包括:1)通过NuGet安装HelixToolkit包;2)ArrowVisual3D组件的核心属性和应用示例,用于创建3D箭头;3)PipeVisual3D组件的属性和示例,用于创建管道/圆柱体;4)3D渲染技术基础;5)完整程序示例,展示了如何在WPF中创建3D坐标轴、原点标记和圆柱体,并支持交互式视角调整。文章提供了XAML和C#代码实现,适合快速入门HelixTo原创 2026-08-07 09:46:16 · 346 阅读 · 0 评论 -
WPF:3D地球仪
本文介绍了在Visual Studio 2022和.NET Framework 4.8环境下使用HelixToolkit创建3D地球仪的方法。主要内容包括:1)通过NuGet安装HelixToolkit包;2)将控件添加到工具箱的步骤;3)3D地球仪的实现原理,包括球体网格构建、相机控制和纹理映射;4)XAML界面设计,包含3D视图区和右侧控制面板,支持鼠标拖拽、键盘控制视角和缩放功能。该方案利用HelixToolkit简化了3D场景开发,实现了一个可交互的地球仪模型。原创 2026-08-06 09:26:31 · 464 阅读 · 0 评论 -
WPF:3DTools 的使用说明
3DTools是一个简化WPF 3D开发的工具库,核心功能是通过TrackballDecorator控件实现鼠标交互(旋转/平移/缩放3D场景)。使用步骤:1)安装HelixToolkit.WpfNuGet包;2)将控件添加到VS工具箱;3)在XAML中用TrackballDecorator包裹Viewport3D,并用透明Border解决空白区域操作问题。该库还支持视角保存、模型加载等进阶功能,推荐使用维护更活跃的Helix Toolkit替代版本。全文提供了从安装到实战的完整指导,重点解决了3D交互中的原创 2026-08-06 09:21:47 · 616 阅读 · 0 评论 -
WPF:3D网格构建和渲染的三个核心
本文介绍了MeshGeometry3D中三个核心概念:SharedPoints(顶点共享)、Blended(平滑/混合)和Faceted(棱角/分面)。SharedPoints通过索引复用顶点数据,显著节省内存,是构建高效模型的基础。Blended通过共享顶点和法线实现平滑表面效果,适合有机形态;Faceted则为每个面使用独立顶点,呈现硬朗棱角,适合机械模型。三者区别在于:SharedPoints是数据组织方式,Blended和Faceted是视觉效果实现手段。实践建议:立方体用Faceted,球体用Sh原创 2026-08-05 09:02:23 · 265 阅读 · 0 评论 -
WPF:3D扭扭圈
本文介绍了在WPF中创建亏格2(双洞)曲面模型的实现方法。通过使用"∞"字形路径(Lemniscate of Bernoulli)进行圆形截面扫掠,生成具有两个洞的管状曲面。关键步骤包括:路径参数方程计算、数值微分求切向量、构建Frenet框架确定法向量、在路径点处构造圆形截面并连接成网格。与标准环面相比,该方法将圆形路径替换为"8"字形路径,从而形成拓扑学上亏格为2的曲面。文中还提供了WPF程序的核心代码实现,包括顶点法线计算、网格构建和自动旋转功能。原创 2026-08-04 08:29:18 · 278 阅读 · 0 评论 -
WPF:3D甜甜圈
本文介绍了使用WPF实现3D甜甜圈(圆环体)可视化交互程序的关键技术。通过参数方程生成圆环体几何网格,采用环境光和方向光组合实现立体渲染效果。程序提供交互控制面板:可调节相机焦距(视野缩放)、三轴旋转滑块,并支持自动旋转功能。XAML界面采用Viewport3D显示3D模型,通过数据绑定实现控件与3D变换的联动,相机位置合理设置以展示半径2的圆环体。光照与材质设置使前后表面呈现不同颜色,便于观察3D效果。原创 2026-08-03 09:41:39 · 306 阅读 · 0 评论 -
WPF:3D球体
本文介绍了在WPF中创建3D球体的方法。首先说明了WPF的3D坐标系规则,然后详细讲解了通过经纬度法生成球体网格的数学原理,包括顶点排布、三角形索引、法线计算和纹理坐标映射。文章还介绍了WPF 3D渲染机制,包含Viewport3D、相机设置、灯光配置和几何模型构建。最后提供了XAML界面代码和C#后台实现,展示了如何动态生成球体网格并添加旋转动画效果。整个实现采用经纬度参数化方法,通过设置合理的顶点和索引数据来构建平滑的3D球体模型。原创 2026-08-02 07:30:00 · 202 阅读 · 0 评论 -
WPF:3D正二十面体
本文介绍了WPF中构建正二十面体3D模型的实现方法。首先说明了WPF的3D坐标系特性,然后详细描述了正二十面体的几何特征(12个顶点,20个正三角形面)和顶点坐标数学构造,包括黄金比例φ=(1+√5)/2的应用。文章展示了如何在C#代码中动态构建模型,并通过XAML界面实现交互控制,包括相机焦距调节、三轴旋转滑块控制以及自动旋转功能。代码片段演示了模型容器、光源设置和旋转变换的绑定实现,为开发3D图形应用提供了实用参考。原创 2026-08-01 08:00:00 · 167 阅读 · 0 评论 -
WPF:3D正十二面体
本文介绍了WPF中正十二面体3D模型的构建方法。内容包括:1) WPF的3D坐标系规则(右手定则);2) 正十二面体的几何特征(20个顶点,12个正五边形面);3) 详细解析了程序中采用的顶点坐标构造方式,其中每组6个顶点表示一个五边形面(中心点+5个外点),共12组72个顶点;4) 三角形索引的划分逻辑(每组5个三角形);5) 通过XAML代码展示了交互界面设计,包含相机焦距调节、三轴旋转控制等功能。文章指出该模型采用独立顶点而非共享顶点方式,虽然增加了内存占用但简化了渲染逻辑。原创 2026-07-31 08:27:36 · 366 阅读 · 0 评论 -
WPF:3D正八面体自动旋转
本文介绍了在WPF中创建和显示正八面体的方法。正八面体具有6个顶点、12条边和8个等边三角形面。文章给出了顶点坐标的整数解,并说明如何通过缩放调整尺寸(如(5,0,0)等坐标)。详细列出了8个面的顶点索引组合,确保法线朝外。在XAML部分,提供了完整的3D视口布局,包含相机控制、旋转滑块和自动旋转功能,以及正八面体的几何模型定义,其中每个面使用不同颜色渲染(如红色示例)。通过调整参数可实现多角度观察这个规则多面体。原创 2026-07-30 08:27:28 · 233 阅读 · 0 评论 -
WPF:3D正四面体旋转改错
本文分析了WPF 3D中正四面体渲染异常的问题。当正四面体自动旋转时,常出现只能看到部分面或全白的情况。经解析,这是由WPF的背面剔除机制导致,默认只渲染法线朝向相机的三角形面。作者通过详细计算四个面的法线方向和顶点索引顺序,发现第三个面(A,C,D)的索引顺序错误导致法线指向内部。解决方案是将该面的索引顺序从0,1,2改为0,2,1,使法线正确指向外部。其他三个面的顺序保持0,1,2不变。文中还通过图示解释了旋转角度对可视面的影响,说明了背面剔除机制的工作原理。原创 2026-07-29 08:25:13 · 235 阅读 · 0 评论 -
WPF:3D正四面体自动旋转
本文介绍了WPF中实现3D正四面体的方法,包含坐标系说明、整数顶点验证和交互功能实现。首先阐述了WPF的3D坐标系规则,并证明存在所有顶点坐标为整数的正四面体(如(0,0,0),(1,1,0),(1,0,1),(0,1,1))。接着描述了交互界面设计,包含三个轴向的旋转滑块(带数值显示)和自动旋转功能。XAML代码展示了完整的3D视口布局,包括相机设置、光源配置和四个三角面片组成的正四面体模型,每个面使用不同颜色材质。该系统支持通过滑块调整视角和旋转角度,并可通过按钮控制自动旋转和退出程序。原创 2026-07-28 08:50:30 · 225 阅读 · 0 评论 -
WPF:3D正方体旋转
本文介绍了WPF 3D图形的基本概念和实现方法。主要内容包括:1)3D坐标系采用右手定则,原点位于对象中心;2)相机(PerspectiveCamera)设置观察视角,包含位置、观察方向和向上方向;3)通过MeshGeometry3D定义网格模型,设置顶点坐标和三角面索引;4)实现立方体绕X/Y/Z轴旋转功能,通过滑动条控制旋转角度;5)提供完整XAML代码示例,展示如何构建包含6个不同颜色面的立方体3D模型,并实现相机焦距调节和三维旋转交互功能。原创 2026-07-27 16:39:01 · 230 阅读 · 0 评论 -
WPF:3D立方体
本文介绍了3D图形的基本元素(模型、灯光、视野)及其实现方法。通过构造一个蓝色3D立方体为例,详细说明了网格模型由12个三角形组成、材质纹理设置、方向光配置以及视野构建的过程,并提供了完整的WPF实现代码。文章最后附有源码下载和相关参考资料链接,帮助读者快速掌握3D图形编程基础。原创 2026-07-26 09:24:26 · 240 阅读 · 0 评论 -
WPF:3D 图形编程基础
WPF 3D 图形开发指南摘要(150字) WPF提供了完整的3D图形支持,适用于业务应用和数据可视化。其核心组件包括:Viewport3D容器、Camera视角控制、Model3D几何模型、Material材质效果、Light光源系统及Transform变换操作。开发者需掌握右手坐标系规则,通过MeshGeometry3D构建三角形网格模型(定义顶点和三角面)。示例演示了如何创建带旋转动画的3D三角形,包含相机定位、平行光设置和材质应用。进阶技巧涉及纹理贴图、数据绑定和性能优化(顶点合并/资源复用)。WP原创 2026-07-25 10:26:38 · 197 阅读 · 0 评论 -
WPF:时钟
WPF时钟应用开发摘要 本项目实现了一个WPF时钟应用,主要技术包括路径绘制、旋转转换和数据绑定。应用分为三部分:钟面绘制、指针设计和时间数据绑定。 实现要点: 使用Ellipse绘制钟面和多层圆环 通过TextBlock和RenderTransform定位钟面数字 采用Path绘制带渐变效果的时针、分针和秒针 数据绑定实现指针动态旋转:绑定Time2Angle类的Hour/Minute/Second属性 Time2Angle类继承INotifyPropertyChanged,通过定时器每秒更新时间并计算指原创 2026-07-22 10:07:33 · 229 阅读 · 0 评论 -
C#安装OpenCvSharp4的实操
一、运行环境Windows下,VS2019企业版16.7二、安装步骤1、打开VS2019,创建工程选择Windows窗体应用(.NET Framework),如下图所示2、使用NuGet安装OpenCvSharp菜单栏->工具->NuGet包管理器->管理解决方案的NuGet程序包分别安装OpenCvSharp4、OpenCvSharp4.Extensions和OpenCvSharp4.runtime.win三个包;当然也可以安装一个包,选择OpenCvSharp4原创 2022-05-04 20:35:42 · 4064 阅读 · 0 评论 -
C#三层架构实现用户注册模块
C#三层架构实现用户注册模块原创 2021-12-07 15:27:51 · 2414 阅读 · 0 评论 -
C#自定义控件学习1:基类控件-HZHControls
大神冰封一夏的开源套件HZHControls很漂亮,值得学习。跟着大神的足迹走一遍,肯定能学到不少。一、基类 自定义的分为控件和窗体2种类型,分别都有一个基类。 基类实现公共的大部分工作。二、基类控件1、主要实现功能:圆角边框填充颜色2、属性 包含圆角角度,边框颜色,边框宽度,填充颜色,背景色等3、事件 需要重写OnPaint,来画边框以及填充颜色。三、基类控件的设计 步骤如下:1.点击文件->新建项目->选择Windows控件库,命名Ky_Controls原创 2021-07-19 17:44:27 · 2742 阅读 · 1 评论 -
C#自定义控件的设计与调用
在C#下建立自己的控件库,需用到自定义控件的设计与调用。一、自定义控件的设计 自定义控件,步骤如下:1.点击文件->新建项目->选择Windows控件库2.编辑控件3.点击生成->生成 项目名称 ,完成这一步后会在bin或debug目录下看到"项目名称.dll"文件,这个便是你的控件库了。 具体实操:1、新建项目 点击文件->新建项目->选择Windows控件库。项目名称Ky_ColorHatch2、界面布局 组件面板panel1至panel11,按钮 More。原创 2021-07-13 15:08:57 · 8848 阅读 · 1 评论 -
Newtonsoft.Json.dll 的使用
在日常编程中经常会使用到Json来进行数据的交互,好在.Net平台下有很多开源的Json库,使得我们能够比较轻松快速的处理各种复杂的Json。一、类库说明 Newtonsoft.Json,是.Net中开源的Json序列化和反序列化工具,官方地址:http://www.newtonsoft.com/json。 功能比较多,效率比较高。比较常用的功能除了序列化发序列化之外,还有 Linq To Json、Json Path、 XML support等二、安装配置2.1 通过NuGet程序包直接原创 2021-01-13 08:50:15 · 3548 阅读 · 0 评论 -
IIS部署及网站发布实操
一、IIS部署1. 打开控制面板,在程序和功能下,选择打开或关闭Windows功能。等待加载,选择Internet信息服务,勾选如下选项二、网站添加1、 控制面板–》管理工具 --》Internet 信息服务(IIS)管理器,点击进入。2.添加网站,选择配置把上一篇生成的发布目录拷贝到F:\WebService_MyTest输入网站的名称、IP地址(本机可以不输入IP地址)和端口,选择文件的路径,然后点击确定,网站就创建完成了3.目录启用添加好后,在网站栏下就能看到你刚刚原创 2021-01-12 08:58:45 · 3453 阅读 · 0 评论 -
C#编写的简单Webservice例子实操
环境:visual studio 2013, Windows7。根据博客的方法一步一步的试验,得到如下结果。一、创建webservice C#工程1、如图,文件->新建项目2、创建一个空的Web应用程序。3、然后鼠标右键点击项目,选择 添加>新建项。4、在界面中选择Web服务,点击添加5、如下图所示,WebService的简单Demo就建好了,包含一个Hello World简单示例6、新建一个简单的加法程序,点击运行7、点击刚刚新建的Add方法,进入界面后输入参数,原创 2021-01-11 15:19:05 · 6111 阅读 · 1 评论 -
C#资源文件的使用实例
C#资源文件的使用实例在写程序时, 可以把用到的 字符串,图标,图片,声音等外部资源,放在一个 .resx (资源文件)中。 这样的好处是不用考虑什么路径的问题.而且还对资源有保护的作用。一、程序界面二、新建一个项目Ky_Resx;在Form1上放置2个按钮和1个picturebox。三、创建一个 Resource1.resx 文件.选中 项目Ky_Resx,右击 “添加”—“新建项”四、向Resource1.resx 里添加字符串双击Resource1.resx,五、向Resou原创 2020-11-30 10:00:09 · 698 阅读 · 0 评论 -
C#编程实现附加分离数据库的程序实例
C#操作数据库之SqlClient模式编程实现附加分离数据库的程序实例。一、程序界面二、C#的三种访问数据库的模式SqlClient模式是微软专门为其产品Sql Server数据库而设计的,所以如果欲使用Sql Server数据库开发应用程序的话,建议使用这种模式,其性能和效率是比其他模式的要高。OleDb模式Odbc模式OleDb模式和Odbc模式可以运用在任何支持该模式的数据 库产品中,如Access数据库、DB2、Sybase和Sql Server 数据库等。三、SqlClien原创 2020-10-10 10:16:53 · 574 阅读 · 0 评论 -
C#如何查看DLL文件中的成员
在C#中经常需要调用DLL文件,需要查看DLL文件中的成员,查看DLL文件中的成员需要以下几个步骤:一、方法步骤1、首先启动vs的命令行工具2、输入命令ildasm,3、 选择“文件”-> “打开” 找到你需要查看的DLL文件。4、选择“文件”->“转储树视图” 另存到txt类型的文件中,如MyDLL_name.txt5、打开文本文件查看 打开MyDLL_name.txt,可以看到树形的DLL文件所有类的成员信息___[MOD] D:\C#程序文件夹\下载原创 2020-10-04 09:24:48 · 2542 阅读 · 0 评论 -
构建一个简单的HTTP服务器的C#程序实例
构建一个简单的HTTP服务器一、程序界面启动程序,运行后,在浏览器中输入 http://localhost:8888/ ,可返回结果。二、基本原理1、HTTP协议HTTP是超文本传输协议(HyperText Transfer Protocol)的简称,它建立在C/S架构的应用层协议。TCP/IP协议是协议层的内容,它定义了计算机间通信的基础协议。HTTP、FTP、Telnet等协议都是建立在TCP/IP协议基础上的。2、请求/响应模型在HTTP协议中,客户端负责发起一个R原创 2020-09-20 09:03:47 · 3970 阅读 · 0 评论 -
应用Log4net库记录日志信息的C#实例程序
Log4net库是.Net下一个非常优秀的开源日志记录组件,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。它具有:支持多数框架、可输出日志到多种目标、层级日志体系、可使用XML配置、可动态配置、模块化和可扩展化设计、灵活、高性能等特征。一、程序界面 记录文件输出在logs文件夹下。二、应用实例1、 首先从apache网站下载log4net, http://logging.apache.org/log4net/download_log4net.cgi 。2、将 \原创 2020-09-10 09:05:34 · 409 阅读 · 0 评论 -
对INI文件进行读写操作的C#实例
一、INI文件结构INI文件格式由节、键、值组成。节[section]参数(键=值)name=value二、WritePrivateProfileString函数 将信息写入.INI文件中所用的WINAPI函数原型为:BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName); 其中各参数的意义:LPCTSTR lpAp原创 2020-09-03 15:33:14 · 711 阅读 · 0 评论 -
通过kepserver实现OPC数据读写的C#实例程序
1、OPC OPC是OLE for Process Control的缩写。顾名思义,OPC是一种利用微软的COM/DCOM技术来达成自动化控制的协定。2、建立KepServer OPC服务器 KepServer模拟器的使用,参见han_better的博客https://blog.csdn.net/han_better/article/details/81666740示例使用服务器随附的 Simulator 驱动程序来演示创建、配置和运行项目的过程。 Simulator 驱动程序是基于内存的原创 2020-09-01 15:12:03 · 11768 阅读 · 1 评论 -
使用DLL调用防止程序多次运行的实例程序
一、命名空间namespace 命名空间是一个域,这在个域中所有的类型名字必须是唯一的,不同的类型分组归入到层次化的命名空间,命名空间的好处是:1、避免名字冲突,2、便于查找类型名字。1、定义命名空间 命名空间的定义是以关键字 namespace 开始,后跟命名空间的名称2、使用命名空间 using 关键字表明程序使用的是给定命名空间中的名称。3、嵌套命名空间 命名空间可以被嵌套,即您可以在一个命名空间内定义另一个命名空间。您可以使用点(.)运算符访问嵌套的命名空间的成员。二、C#如原创 2020-08-31 09:12:04 · 568 阅读 · 0 评论 -
C#中解决ListView更新数据出现闪烁的实例程序
在使用vs自动控件ListView控件时候,更新里面的部分代码时候出现闪烁的情况。解决办法使用双缓冲:添加新类继承ListView 对其重写。一、双缓冲作用 双缓冲甚至是多缓冲,在许多情况下都很有用。一般需要使用双缓冲区的地方都是由于“生产者”和“消费者”供需不一致所造成的。这样的情况在很多地方后可能会发生,使用多缓冲可以很好的解决。举几个常见的例子:例 1. 在网络传输过程中数据的接收,有时可能数据来的太快来不及接收导致数据丢失。这是由于“发送者”和“接收者”速度不一致所致,在他们之间安排原创 2020-08-30 16:28:59 · 1523 阅读 · 0 评论 -
编程学C#(3):动态模拟创建二叉树程序
编程学C#(3):动态模拟创建二叉树程序 (2014-5-14)编制的动态模拟创建二叉树程序,学习VS2010 C#的应用。 一、 主要内容: 1. C#中如何建立二叉树链表;2. 二叉树先序遍历与图形显示的应用; 程序运行示例如下: 二、 设计实原创 2014-05-15 11:07:54 · 1294 阅读 · 1 评论
分享