一、上位机简介 在单片机项目开发中,上位机也是一个很重要的部分,主要用于数据显示(波形、温度等)、用户控制(LED,继电器等),下位机(单片机)与 上位机之间要进行数据通信的两种方式都是基于串口的:USB...三、设计上位机界面在Windows窗体应用中,你可以通过拖放控件来设计用户界面。...这里我们设计一个简单的上位机界面,包含以下控件:一个用于显示设备状态的Label一个用于显示数据的TextBox两个用于启动和停止数据采集的Button在Form设计器中拖放这些控件,并设置它们的属性,...2、创建项目:打开Visual Studio,选择创建一个新的项目。在项目模板中,选择适合上位机开发的Windows Forms应用程序或WPF应用程序。...然后,输入项目名称、保存位置等信息,并创建项目。3、设计界面:在项目中,可以创建各种控件,如按钮、文本框、标签、列表框等,用于显示数据和接收用户输入。可以通过拖拽的方式,在窗体中摆放这些控件。
其实它也可以用于WPF属性验证,本文主要也是讲解该组件在WPF中的使用,FluentValidation官网是: https://fluentvalidation.net/ 。...本文需要实现的功能unsetunset 提供WPF界面输入验证,采用MVVM方式,需要以下功能: 能验证ViewModel中定义的基本数据类型属性:int\string等; 能验证ViewModel中定义的复杂属性...创建验证器 验证属性的写法有两种: 可以在实体属性上方添加特性(本文不作特别说明,百度文章介绍很多); 通过代码的形式添加,如下方,创建一个验证器类,继承自AbstractValidator,在此验证器构造函数中写规则验证属性...表示关联集合中的项验证器。...,通过注册属性的变化事件PropertyChanged,在变化事件处理程序中验证: PropertyChanged += Validate; CurrentStudent.PropertyChanged
01 简介 之前也写过好多篇CM框架相关的项目实战文章,比如: C# WPF框架Caliburn.Micro快速搭建 C# WPF框架Caliburn.Micro入门实例1 C# WPF MVVM项目实战...(进阶①) C# WPF MVVM项目实战(进阶②) C# WPF MVVM模式下在主窗体显示子窗体并获取结果 C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面 C# WPF...mvvm模式下combobox绑定(list、Dictionary) C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅 但是可能这些都是把一个综合性的项目分多个部分分别讲述的...其次,因为没有整体的构思,随着内容的增加,项目越来越显得笨重和凌乱,所以今天我重新搞了一个项目,希望以尽量少的代码,涵盖尽量多的知识点,帮助大家更好的理解和使用CM框架。...03运行结果 04项目说明 项目主要包括的类文件如下图: ① MainWindowViewModel.cs类: using PropertyChanged; using System.Collections.ObjectModel
= "父窗口标题") item.Close(); } WinForm时这样操作的: // 遍历并关闭所有子窗口 FormCollection childCollection = Application.OpenForms...= this.Title) childCollection[i].Close(); } WPF中时这样操作的: // 遍历并关闭所有子窗口 Window[] childArray = Application.Current.Windows.Cast...= this.Title) item.Close(); 总结, 注意WPF中调试要排除无标题窗口,否则会导致程序被关闭。...这里的无标题窗口是WPF的界面调试器,如果它被关闭会导致被调试的程序也被关闭,Release程序可以不用对无标题窗口进行排除。
= "父窗口标题") item.Close(); } WinForm时这样操作的: // 遍历并关闭所有子窗口 FormCollection childCollection = Application.OpenForms...= this.Title) childCollection[i].Close(); } WPF中时这样操作的: // 遍历并关闭所有子窗口 Window[] childArray = Application.Current.Windows.Cast...= this.Title) item.Close(); } 总结, 注意WPF中调试要排除无标题窗口,否则会导致程序被关闭。...这里的无标题窗口是WPF的界面调试器,如果它被关闭会导致被调试的程序也被关闭,Release程序可以不用对无标题窗口进行排除。
根据名称关闭 使用C#结束 private static void StopNginx() { Process[] processes = Process.GetProcessesByName(...本来我还尝试了用进程对象来结束,但是不行,因为Nginx启动会产生多个进程,单独结束掉一个是不行的!...list_pid); StringBuilder sb = new StringBuilder(); sb.AppendLine("占用" + port + "端口的进程有...} p.Close(); return list_process; } } } 其实就是用CMD获取占用端口的进程...ID netstat -ano|findstr ":10077 " 比如进程ID为16212 查看进程对应的进程名称 tasklist |findstr 16212 结束进程 taskkill /f /
报点率指每秒报告触控数据的次数。本文通过WPF应用程序探讨触摸数据间隔,举例Dell触摸屏报告约16-17ms间隔。触摸线程的合并操作减慢了WPF的响应速度。...Blazor Hybrid在拖放事件中仅获得文件流,缺乏对浏览器行为的控制,导致桌面应用体验差异。作者指出,这些问题影响了用户体验和开发者预期,尽管Blazor Hybrid具有跨平台开发的潜力。...作者采用Python中的PaddleOCR进行OCR处理,并通过System.Diagnostics.Process在C#中运行Python脚本。...WPF中的ListBox怎么添加删除按钮并删除所在行 https://www.cnblogs.com/lvpp13/p/18454644 本文讲解如何在C#中使用数据绑定和命令删除列表项。...不同语言(如C、C#、Go、Python)的代码可以通过编译工具转译为WASM文件,在浏览器环境中执行,这展示了WebAssembly的多语言兼容性和实用性。
C#中的委托是一项强大的功能,它能够将方法作为参数进行传递,并支持事件驱动编程。委托以一种类型安全的方式提供了对方法引用进行封装的途径。...本篇博客将通过实际生活中的示例来讲解委托,以便让学生们轻松理解并应用这一概念。 什么是委托? 委托是一种代表对具有特定参数列表和返回类型的方法的引用的类型。...事件处理:委托是C#中事件处理的基础。 使用委托:实际示例 让我们深入研究一些实际示例,以了解委托是如何工作以及如何有效地使用它们的。 1....我们创建了Add和Subtract两个方法,它们的签名与委托的签名相匹配。 我们切换委托所指向的方法,并使用参数来调用它。 委托是C#中的一项基础功能,它能够实现灵活且动态的方法调用。...利用所提供的示例进行练习,你会发现委托是你C#编程工具集中的一个强大工具。
概述 .NET5 发布已经有一阵子了,今天抽空体验一哈,搭建一个WPF项目实例,看看和传统的.NET Framework有什么区别!...开发环境:VS2019 WPF框架:Caliburn.Micro 版本4.0.173 .NET版本:.NET5.0 项目创建步骤详述 step1:打开vs2019 ,选择 创建新项目 step2:...选择WPF 应用程序,然后下一步 step3:配置新项目,修改项目名称和存放路径,然后下一步 step4:选择目标框架,然后点击创建 这样,项目就创建成功了。...创建流程基本和.NET Framework没啥区别,除了step2需要注意选择一个基于.NET CORE的项目模板。...C# wpf编程CM框架快速入门项目实例 运行演示 源码下载 百度网盘链接:https://pan.baidu.com/s/1fwj6_AQZ_YDGRvHLDnITmw 提取码:0000
它们利用.NET平台的强大生态系统和C#编程语言,提供了丰富的第三方库和组件,适用于需要与.NET集成和充分利用其功能的项目。...WinForms和WPF的优点: - 简单易用:WinForms和WPF提供了直观的拖放设计和可视化编辑工具,使得创建Windows桌面应用程序变得简单易用。...- .NET生态系统:作为.NET平台的一部分,WinForms和WPF可以利用.NET生态系统中丰富的第三方库、组件和工具,提供更多的扩展和功能。...- C#编程:使用C#语言进行开发可以提高开发效率,尤其是对于熟悉C#和.NET的开发人员。...WinForms和WPF的缺点: - 仅限于Windows平台:WinForms和WPF是Windows平台的专用框架,不适用于其他操作系统。如果需要跨平台支持,可能需要额外的工作来实现。
文章中对C#/.NET平台的分类存在错误,C#/.NET不应被归类为A组件。文中详细介绍了C#从1.0到12的版本历程,并解释了C#及.NET平台的标准化和开源情况。...文章还详细讲解了在3DS Max中如何编写和预览HLSL着色器的步骤,并提供了示例代码。最后,文章介绍了WPF中像素着色器的编写与使用的具体做法。...WPF/C#:如何实现拖拉元素 https://www.cnblogs.com/mingupupu/p/18270547 这篇文章介绍了如何在WPF Canvas中实现拖放功能。...,实现拖放效果。...在WPF中实现业务层验证可使用IDataErrorInfo接口,提供自定义错误信息。通过在类中实现此接口,可在用户界面显示详细错误信息,帮助用户纠正输入错误。
C# / .NET / WPF 版本 我们现在编写一个自己的 Awaiter 来实现这样的线程上下文切换。...ThreadSwitcher,不过我认为可能 Dispatcher 在 WPF 中更能体现其线程切换的含义。...以下代码在 MainWindow.xaml.cs 里面,如果你使用 Visual Studio 创建一个 WPF 的空项目的话是可以找到的。随便放一个 Button 添加事件处理函数。...Chen 后来在另一篇博客中也编写了一份 WPF / Windows Forms 的线程切换版本。...在此可等待对象中,指的是切换到 WPF 的 UI 线程。
WebBrowser控件可以通过以下步骤来添加和使用:在Visual Studio中打开WPF应用程序并打开窗口的XAML文件。在控件库中找到WebBrowser控件并将其拖放到窗口中。...扩展WPF中的WebBrowser控件支持通过JavaScript与HTML页面进行交互,可以在C#代码中调用JavaScript函数,同时也可以在JavaScript代码中调用C#中的方法。...因此,可以通过JavaScript传递参数来实现WPF中WebBrowser控件之间的交互。在WPF的WebBrowser控件中,可以使用InvokeScript方法来调用JavaScript函数。...代码中调用C#中的方法,则需要在C#代码中注册一个方法,并通过WebBrowser控件的ObjectForScripting属性将该方法传递给WebBrowser控件:webBrowser.ObjectForScripting...可以通过window.external来调用在C#中注册的方法:window.external.MethodName(parameter);通过以上方法,可以实现WPF中WebBrowser控件之间的参数传递和交互
C#是开发桌面应用程序的强大工具,特别是借助.NET Framework和.NET Core。...本文将深入探讨C#中两种主流的桌面应用程序开发框架:Windows Forms和Windows Presentation Foundation (WPF),以及它们的使用场景和最佳实践。...桌面应用程序开发的基本概念桌面应用程序通常具有图形用户界面(GUI),允许用户通过视觉元素(如窗口、按钮、菜单等)与应用程序进行交互。关键组件窗口(Windows):应用程序的顶级容器。...控件(Controls):文本框、按钮、列表框等用户可操作的界面元素。布局(Layout):控件在窗口中的排列方式。事件(Events):用户与控件交互时触发的操作。...安装与配置WPF是.NET Framework的一部分,对于.NET Core和.NET 5/6,可以通过NuGet安装Microsoft.NETCore.App.Windows.App或Microsoft.WindowsAppSDK
这些控件都是WPF中常见的标准用户界面元素。 自定义控件则允许开发人员使用XAML和C#等编程语言来创建个性化的用户界面元素。自定义控件可以根据需求提供更多的功能和自定义化选项,以及更好的用户体验。...ListBoxItem:ListBox中每一个项都是一个ListBoxItem,可以通过定义ListBoxItem的样式来自定义ListBox的外观。...,通过绑定的方式将其作为ListBox的数据源。...拖放:ListBox支持拖放操作,用户可以将项目从一个ListBox控件拖到另一个ListBox控件或其他控件中。...数据绑定:ListBox可以方便地绑定数据,例如绑定到数据库中的数据、XML文件中的数据等等。 ListBox是WPF中非常重要的控件之一,可用于许多不同的应用程序场景。
一、项目背景在众多业务场景中,如文档管理、数据提取等,经常需要对 PDF 文件进行精细处理。...配置腾讯云 SDK:前往腾讯云官网下载对应语言(如 C#)的 SDK。...在 Visual Studio 项目中,通过 NuGet 包管理器安装腾讯云 SDK 相关依赖包,如用于 OCR(光学字符识别)的 SDK。...通过 NuGet 安装 iTextSharp 包。编写拆分代码:在 WPF 项目中创建一个方法用于拆分 PDF 文件。...界面交互设计界面:在 WPF 的 XAML 文件中设计用户界面,包含选择 PDF 文件的按钮、选择输出文件夹的按钮、开始处理的按钮以及显示处理进度和结果的文本框或列表框等。
XAML实时调试工具: XAML C# Edit & Continue 现在被称为 XAML Hot Reload (v16.2): 现在将 WPF / UWP 的 XAML C# Edit & Continue...以前,该功能会显示附件中正在运行的应用程序的完整实时可视化树,而无法通过过滤器仅查看您在应用程序中编写的 XAML。...XAML设计器 WPF Designer 现在完全适用于 WPF .NET Core 项目(v16.3): 现在,所有客户都可以普遍使用 (GA)WPF .NET Core 应用程序的 XAML 设计器...在此版本中,受支持的控件包括:边框,按钮,画布,复选框,组合框,网格,图像,标签,列表框,ListView,StackP anel,TextBlock,TextBox。...通过这些改进,.NET Core 3 项目可以引用包含自定义 UWP XAML 控件的 UWP 项目。
.NET 的问题一直是微软对非 Windows 系统的支持有些迟缓。要找到一个使用 C# 但可以在 MacBook 上运行的 UI 库比预想的要难。...首先,我们安装 Avalonia 模板: 在一个新的项目目录中,我们使用 MVVM 模板,该模板也适用于 MacOS: 然后像往常一样,我们在文件夹中打开 Visual Studio Code: 搜索...你还会注意到它附加了 C# 扩展名来标记“代码隐藏”文件。所有这些都有效,即使有点混乱。是的,它是 XML。 值得庆幸的是,有一些有趣的文件。...从数据角度来看,我们把第一个列表框命名为“category”,第二个命名为“resultlist”,这在后面会用到。你可以看到每个堆栈中的TextBlock都有一个绑定。...现在,我们只需要在用户点击选择时响应类别更改,通过从我们的数据中填充正确的列表来显示示例。
-_G7tbNhT0xRG8cl1Bg 本文介绍了如何.Net6中实现对某个网址截屏,可通过Selenium模拟访问网址并实现截图,另外还有遇到的一些问题。...该版本修复了.NET 6中的一个DoS漏洞。 该漏洞允许通过向已发布的端点发送恶意请求,造成堆栈溢出,从而进行拒绝服务攻击。...该版本修复了几个WPF的错误和Socket的一个罕见问题。...【英文】2022年在C#项目中发现的十大错误 https://pvs-studio.com/en/blog/posts/csharp/1020/ 由PVS-Studio开发人员发现并报告的2022年开源项目中发现的十大错误汇编...如何实现Razor页面的多文件拖放式上传。
在C#中,有多种工具和框架可用于创建GUI应用程序,包括Windows Presentation Foundation (WPF)、Windows Forms和Universal Windows Platform...本文将深入探讨这些框架的核心概念、特点、使用场景及如何使用它们来构建GUI应用程序。GUI开发的基本概念GUI应用程序通过图形界面与用户进行交互,使用户能够通过图形图标和窗口等元素与程序进行交云。...关键组件窗口(Windows):应用程序的顶级容器。控件(Controls):文本框、按钮、列表框等用户可操作的界面元素。布局(Layout):控件在窗口中的排列方式。...Windows Presentation Foundation (WPF)WPF是用于构建Windows客户端应用程序的现代UI框架,使用XAML作为其界面定义语言。...private void Button_Click(object sender, RoutedEventArgs e) { MessageBox.Show("Hello, WPF
领取专属 10元无门槛券
手把手带您无忧上云