WPF开发项目,库使用总结分享

一.项目前言

1.前言

用于内部工业测试,功能上面主要是进行元器件组装的检查,本文则是把项目上使用的库进行一个总体的总结,温故而知新。

2.环境的使用

由于内部对接的sdk库用的是framework库4.8.1。本文所涉及的库都在此环境上运行,大家自行参考。

3.库的使用
控件方面:

​ 1.大体的框架主题用的是MaterialDesignThemes库,比较精细的组件使用的库用是HandyControl库

​ 2.由于需要计算展示波形图用的是ScottPlot.WPF库

​ 功能方面:

​ 1.需要使用usb摄像头 用的是AForge.Video库

​ 2.需要对rtsp进行解码 用的是RtspClientSharp库

​ 3.需要进行傅里叶变换等科学计算 用的是 MathNet.Numerics库

​ 4.需要对图形进行绘制 用的是SkiaSharp库

二.库的使用记录

1.MaterialDesignThemes库

使用此库,强烈建议安装此库的组件浏览demoAPP,在此基础上可跳转到github上进行仔细的使用预览。 贴下app链接[DemoApp.zip](github.com/MaterialDes...)

这样此库的使用会非常的方便。很多可以直接复制粘贴套用修改。

如何快速使用呢?

安装部分不细说了,nuget自行找;

在项目文件列表找到App.xaml 复制在文件内部,这样window和page界面 都可以进行声明调用了 ,下面我是HandyControl 和MaterialDesignThemes库一起使用。用的别的主题库也是如此,比如Metro的主题库

xaml 复制代码
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
            <ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>

            <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.DeepPurple.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>
2.HandyControl库

使用此库,主要是个别组件进行使用,符合国内的用户习惯,推荐直接源码下载下来,把demoAPP 根据自身的环境build出来,生成出HandyControlDemo,从而进行组件的选用,吐槽一下HandyControlDemo没有.MaterialDesignDemo做得好,使用的时候经常不知道要用的组件在第几行=w=(就是一大坨),得自己重开项目进行查阅。贴下库链接 HandyOrg/HandyControl: Contains some simple and commonly used WPF controls (github.com)

中文网站:欢迎使用HandyControl | HandyOrg

使用下来结合文档和源码 用起来效果还是不错的。小贴士------当中有些控件样式 需要取源码中自行寻找

3.ScottPlot库

此库使用起来非常棒,处理大量数据不卡顿,还有Refresh(lowQuality: true) 这种实施刷新降低质量的接口,第一次使用此库 要多结合官方demoAPP的各种案例才能满足项目的需求(多思考) ,此库还是值得在波形图刷新的场景下使用的。 我用的是4系的版本

链接ScottPlot/ScottPlot: Interactive plotting library for .NET (github.com)

下面举个项目使用场景例子,需要在功率图执行多个可拖动的预值范围:

官网案例

项目需要的案例:

总而言之就是多尝试多思考,举一反三。

4.AForge.Video库

此库我主要使用了usb获取摄像头取帧的功能

库的链接:AForge.NET/Sources/Vid...

本人使用的案例WPF取摄像头帧图 - 掘金 (juejin.cn)

5.RtspClientSharp库

此库我主要使用取rtsp流并解码h264 的功能

库的链接:BogdanovKirill/RtspClientSharp: Pure C# RTSP client for .NET Standard without external dependencies and with true async nature. I welcome contributions. (github.com)

本人使用的案例C# RTSP解码-RtspClientSharp库使用分享 - 掘金 (juejin.cn)

6.MathNet.Numerics库

非常棒的科学计算库 此次我使用到了 三次样条插值法和傅里叶变换,有需要的科学算法可以参考库 和文档

链接:mathnet/mathnet-numerics: Math.NET Numerics (github.com)

官方文档:Math.NET Numerics (mathdotnet.com)

7.SkiaSharp库

因为需要对帧图指针进行一些叠加工作,使用此库效率非常快和稳定,项目中我基本用WriteableBitmap类进行构造相关指针,当然来回切换起来也非常方便

链接:mono/SkiaSharp: SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images. (github.com)

三.总结

当项目上功能需求遇到问题,使用gpt-3.5(免费-w-)寻找解决的思路还是非常棒的,提高了生产效率(比如wpf的xmal的问题解决)。再结合库的官方文档的组合(人类的财富 github =w=,推荐上不去的话,使用码云的github520 可以解决),只要思路正确,基本上很多需求现在都可以花较少的时间来完成,在如今可以轻松获取庞大知识体系的环境上,经常进行项目总结,完成积累本人觉得还是有必要的,毕竟好记性不如烂笔头QAQ

相关推荐
weixin_4280053038 分钟前
C#调用 AI学习从0开始-第1阶段(基础与工具)-第3天FewShot少样本测试
人工智能·c#
思麟呀42 分钟前
在C++基础上理解CSharp-1
开发语言·c++·c#
Hy行者勇哥1 小时前
Coze技能保存至GitHub:文件格式与完整存档教程
github
weelinking2 小时前
2026年三大主流大模型深度对比:GPT-5.5、Claude 4.6与DeepSeek V4谁更值得选择?
java·大数据·人工智能·git·python·gpt·github
梦梦代码精2 小时前
开源智能体平台 BuildingAI 深度解析:Monorepo 架构、MCP 集成及 GPT-Image-2 接入实测
前端·人工智能·后端·gpt·开源·github
雪豹阿伟2 小时前
3.C# —— 变量运算、位运算、条件判断
c#·上位机
未来超低端科技研究所2 小时前
大恒工业相机c#开发,NET8跨平台使用(armlinux和x86linux)
linux·c#·工业相机·net8·大恒图像·跨平台开发
海盗12342 小时前
C#中使用MiniExcel 快速入门:读写 .xlsx 文件
开发语言·windows·c#
c#上位机2 小时前
C#项目中打包文件的三种方式
开发语言·c#
tedcloud1238 小时前
UI-TARS-desktop部署教程:构建AI桌面自动化系统
服务器·前端·人工智能·ui·自动化·github