- 博客(552)
- 资源 (89)
- 收藏
- 关注
转载 任务栏进度显示
Win7及以上系统支持任务栏进度条,为有进度类应用显示进度于任务栏,甚为方便。以c#之WinForm实现其,大多采用Windows API Code Pack这个方案,加多引用,比较繁琐,而我总也打不开了其页面。鄙人不喜欢多引用东西,即寻求方法抽取其相关代码,简化其应用。费些工夫,实现效果。
2024-12-20 16:28:05
54
转载 WPF任务栏同步进度
TaskbarItemInfo类为 Windows 7 任务栏功能提供托管包装。有关 Windows shell 和本机任务栏 Api 的详细信息,其中taskbar的缩略图操作界面和任务进度更新就是其中的两个部分功能。参考资料:https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.shell.taskbariteminfo?源码地址:https://github.com/JusterZhu/2021PlanJ。
2024-12-20 16:19:17
57
转载 C#程序开发,使用内存映射加速文件读取速度。
什么是零拷贝技术?首先计算机不存在什么真的零拷贝技术,这点是确认的。零拷贝值得是减少多余的拷贝的意思。
2024-12-09 13:32:17
153
转载 WPF控件LiveCharts——实现动态折线图
现目需要在软件界面上实时显示数据的变化,实现类似心电图的效果,发现WPF似乎没有自带的图表控件。于是上网搜索了一下,发现了Live Charts这个开源项目,这里记录一下自己的使用方法。.Net的简单,灵活,交互式和强大的数据可视化。LiveCharts只是数据可视化,但适用于所有人。Live Charts是一个使用C\#,可以在WPF、UWP和WinForm上应用的图表控件。它支持各种自定义设置以及动画,可以实现丰富的效果,使用起来也较为方便。同时官网上有大量的教程与示例。
2024-12-06 19:28:32
501
1
转载 【补充】提高显示性能的一些措施(二)
显然,默认情况下默认CartesianChart.AnimationSpeed设置为 500ms。在实时场景中将绘图速率提高到 1/450 毫秒以上将导致“丢失”帧。“丢失”意味着数据最终可见,但不是实时绘制的。每个布局失效的渲染过程只需要太长时间。该库的实施相当糟糕。有一个付费版本宣传自己比免费版本性能更高。我还没有测试付费版本。免费版的图表控件非常慢,尤其是在处理庞大的数据集时。超过 450 毫秒将使情节显得滞后(由于跳帧)。这是执行不力的结果。当超过 500 毫秒的默认动画速度时,应禁用动画。
2024-12-06 19:24:53
79
原创 WPF开发中,DPI 相关的资料记录
WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像素,不过如果电脑的DPI设备为120(每个英寸120个像素),那此时每个WPF单位对应应该是120/96=1.25个像素。(2) 当显示器实际象元的物理尺寸和系统设置的DPI保持一致的时候,WPF可以在显示器上做到“分辨率无关”,即同一个WPF用户界面和绘制的图形尺寸在任何一台显示器(实际象元的物理尺寸和系统设置的DPI保持一致)上输出都是一致的。
2024-11-19 10:18:43
1042
转载 C# 事件总线 EventBus
通过上面一步一步的分析和实践,发现事件总线也不是什么高深的概念,只要我们自己善于思考,勤于动手,也能实现自己的事件总线。事件总线维护一个事件源与事件处理的映射字典;通过单例模式,确保事件总线的唯一入口;利用反射完成事件源与事件处理的初始化绑定;提供统一的事件注册、取消注册和触发接口。最后,以上事件总线的实现只是一个雏形,还有很多潜在的问题。有兴趣的不妨思考完善一下。本文转自,如有侵权,请联系删除。
2024-11-12 16:25:13
182
原创 C#程序开发,检测当前电脑已经安装的软件目录
在Windows中使用C#做软件开发,有时候需要获取当前系统中已安装的软件及其版本号,接下来就简单介绍一下,如何通过C#获取来实现。
2024-11-12 16:00:03
580
原创 计算当前是星期几,是周几
Tomohiko Sakamoto算法是一种高效的计算星期几的方法。它由日本计算机科学家Sakamoto Tomohiko提出,能够快速地计算出给定日期对应的星期几(0代表星期日,1代表星期一,以此类推)。该算法利用了特定的数学公式,通过一系列的位运算和模运算来直接从日期中推算星期几,避免了传统方法中繁琐的日期转换过程。它非常高效,并且常用于需要频繁计算星期几的程序中,如日历应用、日期处理工具等。这段代码通过输入年份、月份和日期来计算对应的星期几。
2024-11-08 13:29:16
515
原创 WPF开发,将引用的dll在编译时指向单独的文件夹。
在这种情况下,它将获取"引用的程序集"解决方案文件夹所引用的新dll,并在提交它们之前自动添加源代码控制跟踪(即,如果像我一样从Visual Studio中的解决方案资源管理器中提交解决方案更改, )。通过这个事件,我们可以在程序集解析时,根据不同的程序集做不用的处理,比如加载x86的程序集还是64位的程序集,当然也就可以指定程序集目录了。想必C#的开发者都遇到过这个问题,引用的dll都放在根目录下,随着项目的日益增大,根目录下充满了各种各样的dll,非常的不美观。如果有,那就直接调用。
2024-11-05 09:55:05
1083
转载 一点点从坑里爬出来:如何正确打开 WPF 里的 Popup?
在 WPF 中打开一个 Popup 并没有想象当中容易。虽说提供了一个IsOpen属性用于显示 Popup,但实际上造成的 Bug 会让你解得死去活来。Win32 的 WS_POPUP 也坑,不过 WPF 会额外再带来一些,所以本文只说 WPF。
2024-10-16 09:22:34
94
转载 基于DPAPI+RDP技术实现本地打开远程程序,并映射到本地机器桌面上
我需要获取服务器的IP、登陆的用户名、密码、以及NotePad++的启动程序的绝对路径,例如如下图所示。我没做记住信息功能,所以大家也可以自己创建一个记事本之类的,存储你的远程程序信息,方便粘贴进去填写。必须加密以后的密码,才能被远程服务器识别。在刚才的程序里面,更改启动的路径为上面的控制台服务路径,然后启动。后记:本工具打开的远程程序,支持局域网、外网,只要你可以通过远程桌面访问的服务器或者电脑,都可以通过该方式进行启动。支持打开多个远程程序,例如,我现在打开一个以前自己写的控制台程序服务,地址如下。
2024-10-11 09:23:15
79
原创 智能制造的生产力基础设施
工厂经理会仔细监控关键绩效指标 (KPI),以发现任何生产力下降的迹象,以便快速做出反应,找出并解决这些偏差的根本原因。与此同时,他们质疑生产力指标是否准确反映了工厂绩效,因为这些跟踪系统可能已经存在多年,但并未更新以利用全套可用生产力标准和相关数据收集基础设施。在其中,我们重点介绍了复杂制造环境中生产力管理的关键原则,描述了多年来为支持这一过程而定义和完善的一系列 SEMI 标准,确定了实施这些标准所需的各种数据源、收集方法和系统组件,并提供了几个具体示例来说明这些部分如何组合在一起。
2024-09-27 14:00:36
300
原创 半导体制造过程中设备通信的高级概述
在半导体行业中,制造过程是一个复杂的过程,涉及多个步骤才能达到预期结果。每个工艺步骤都使用不同类型的设备。半导体行业设备使用一种特定类型的通信协议,称为 SECS/GEM(SEMI 设备通信标准和通用设备模型)。
2024-09-27 13:52:39
416
原创 如何使用 CCF Communicator 框架快速开发设备接口
通信器框架通过封装 CCF 和设备之间的连接,简化了硬件之间的低级消息处理。举例来说,考虑一下控制软件和硬件设备之间的连接方式。ASCII 串行连接需要使用 TCP 的套接字连接、用于处理设备发送/接收的多个消息的多线程机制、用于同步命令及其各自响应的逻辑以及其他几个功能。如果从头开始开发,这项工作将非常繁重。作为替代方案,CCF 提供了一个内置的 ASCII 串行连接类来快速实现所有这些。您可以简单地使用此类创建与组件的 ASCII 串行连接。
2024-09-27 13:47:44
299
翻译 CIMControlFramework (CCF) 中的作业数据持久性
问题:在执行任何应用程序期间,始终存在执行终止的风险:过早关闭应用程序、计算机断电或程序故障。通常,程序在内存中保存的数据代表了应用程序在此之前的基本数据和状态。当执行意外停止时,在此之前积累的所有信息都有可能丢失且无法恢复,因为内存中的内容本质上不是持久的。程序终止后,存储在内存中的任何数据都将消失。解决方案:一种典型的解决方案是在创建或更改重要数据时立即将数据写入磁盘。通常将这些数据保存在一个或多个文件中以实现完整的持久存储机制。
2024-09-27 13:42:14
133
翻译 设备数据采集标准SEMI EDA/Interface A
设备数据采集(EDA,又叫做Interface A)标准是一套SEMI标准,其设计目的是方便并改善工厂的数据采集软件应用和工厂设备之间的通讯。工厂使用EDA标准收集来自设备的具体数据,然后分析数据来确定如何才能更好的提高生产率,提高质量,降低成本。EDA标准并不能取代SEMI GEM/SECS标准(E4, E5, E30和E37)或SEMI GEM300标准(E39, E40, E87, E90, E94, E116, E148和E157),因为EDA标准并不提供设备控制或配置的功能。
2024-09-27 13:35:08
350
翻译 CCF为实施工厂自动化提供了一条捷径
工厂自动化涉及大量SEMI标准,譬如GEM标准大概有450页文档,包括E4,E5,E30,E37,E37.1,E172,E173,GEM300标准大概有280页文档,包括E39,E40,E87,E90,E94,E116,E157,E148,而更为复杂的EDA标准大概480有页文档,包括E120,E125,E128,E132,E134,E138,E164,对于大多数非专业的工厂自动化软件工程师而言,工厂自动化软件的集成工作是一件极其繁琐而艰难的任务。
2024-09-27 13:21:06
147
转载 Windows调试工具课程 - 在软件万种死法中调试出原因
在本次课程里面将和大家介绍一些在 Windows 上常用的调试工具,以及调查问题的常见套路。适合于伙伴们入门 Windows 调试本文内容的组织方式是按照原本课程课件里面的一页页的内容组装而来的方式组织的,在过程中补充一些讲课时的内容本次课程里面核心的内容是调试工具,调试工具是我们在调试软件的时候的利器,通过调试工具我们可以找到软件的问题,解决软件的问题本次的课程的开始我来和大家讲一个调试故事,这个故事是从用户反馈软件用不了的问题开始的用户说软件用不了,那可能会
2024-09-23 09:40:07
457
原创 Chatgpt4不同版本的简要说明
GPT-4 是一套大型多模态模型(可接收文本或图像输入,并输出文本结果),目前通过 OpenAI API 向付费客户开放。 与 GPT-3.5-turbo 一样,GPT-4 针对聊天进行了优化,因此可通过聊天完成以往必须借助 Chat Completions API 才能处理的任务。OpenAI 在文本生成指南中专门介绍了如何使用 GPT-4 https://platform.openai.com/docs/guides/text-generation
2024-09-19 14:52:01
213
原创 SVM——支持向量机的学习入门
SVM算法的基本原理,包括硬间隔和软间隔的概念,以及在处理线性和非线性分类、回归和异常值检测中的应用。通过Scikit-Learn示例,展示了SVM在实际项目中的操作,并探讨了SVM的优点和选择核函数的策略。
2024-09-14 17:04:37
1425
转载 WPF性能优化之UI虚拟化
相信很多WPF开发者都碰到过这种情况,当在一个ItemsControl(或继承自ItemsControl)控件中绑定一个集合的时候,如果集合中的条目过多,那么界面就会变得卡顿甚至停止响应,特别是在容器或窗口大小发生改变时,界面的渲染就会给人一种慢半拍的感觉,体验感非常差,这时我们就可以用虚拟化技术来解决这个问题。
2024-09-03 09:29:41
949
转载 c# 高级编程 22章520页 【文件和流】【使用管道通信】
为了 在线程和进程之间通信,在不同的系统之间 快速通信,可以使用管道。通信的另一端 需要知道 管道的。.NET中,管道实现为流。
2024-08-22 15:29:49
71
转载 C#使用Microsoft.office.interop.PowerPoint生成PPT
C#使用Microsoft.office.interop.PowerPoint生成PPT
2024-08-19 09:51:29
343
原创 c#使用PDFSharp开发导出PDF功能之二基本概念说明
PDFSharp组件是.Net下的一个开源类库,可以轻松的在.Net语言中创建PDF文档,在屏幕中显示以及输出到打印机,可以修改,合并拆分已经存在的PDF文件。总体来说,PDFSharp 组件主要特点有:1.可以使用任何.NET编程语言动态创建PDF文档2.很容易使用对象模型来构建文档3.全部用C#重写设计和编写代码4.可以生成PDF文件和显示在窗体或者打印,都使用同一源文件5.可以修改、合并或者分割PDF文件6.可以控制图片的透明度,嵌入了字体。
2024-08-15 16:30:18
1629
原创 c#实现数据导出为PDF的方式
c#开发中,实现将数据导出为PDF文件,这些数据包含文本,图片,图表等,有哪些实现的方式?只对实现方式进行比较。
2024-08-15 11:28:31
1165
转载 网络通信协议的区别.NET TCP、UDP、Socket、WebSocket
上面是基本的网络通信DEMO,TcpClient用于基于连接、可靠的TCP通信,适用于需要数据完整性和可靠传输的场景。Http与TCP/UDP均是网络通信协议,TCP、UDP位于传输层,HTTP传于应用层,而且HTTP是基于TCP面向连接的,它是客户端单向发起的半双工协议。Socket可以使用各种协议如TCP、UDP协议实现进程通信,TCP/UDP才是传输通信协议。而UDP则是无连接的,不需要建立和维护连接状态,不提供确认机制,也不重传丢失的数据报,但也因此传输实时性高,适合低延时、数据量小、广播场景。
2024-08-14 09:21:49
184
转载 .NET 控件转图片
上面方法获取的是BitmapSource,BitmapSource是WPF位图的的抽象基类,继承自ImageSource,因此可以直接用作WPF控件如Image的图像源。VisualBrush是非常强大的类,允许使用另一个Visual对象(界面显示控件最底层的UI元素基类)作为画刷的内容,并将其绘制在其它UI元素上(当然,不是直接挂到其它视觉树上,WPF也不支持元素同时存在于俩个视觉树的设计)同步界面变更是如何操作的?获取当前窗口所在屏幕DPI,使用控件已经渲染的尺寸,就可以捕获到指定控件的渲染图片。
2024-08-14 09:19:29
100
转载 概述C#中各种类型集合的特点
在C#中,集合是用于存储和操作一组数据项的数据结构。这些集合通常位于 System.Collections 和 System.Collections.Generic 命名空间中。下面我将概述C#中几种常用的集合类型及其特点:
2024-08-01 09:07:30
55
Music-MP3.zip
2024-07-05
WPF_UI_telerik_Dll.zip
2022-05-21
Notepad++运行C#的插件及源码
2022-02-16
Bongo Cat Mver--邦哥猫替身
2022-02-16
WPF日历控件TestMainWindow.zip
2021-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人