WPF常用控件
1 布局控件Canvas、DockPanel、Grid、StackPanel、TabPanel、ToolBarOverflowPanel、ToolBarPanel、 UniformGrid、VirtualizingPanel、VirtualizingStackPanel 和 WrapPanel 都是 WPF 中的布局控件,它们都继承自 Panel 类,可以容纳多个子控件或者嵌套其他布局控件,用于在 UI 中组织和排列控件。它们的作用和常用特征及特征值如下:
Canvas:画布,可以使用以像素为单位的绝对坐标来定位子控件,类似于 Windows Form 的布局方式。常用的特征有:
Canvas.Left:指定子控件相对于画布左边缘的距离,可以是具体的数值或者 Binding 表达式。
Canvas.Top:指定子控件相对于画布上边缘的距离,同上。
Canvas.ZIndex:指定子控件在画布中的层次顺序,数值越大越靠上。
DockPanel:泊靠式面板,可以将子控件按照指定的方向停靠在父容器的边缘,类似于 Winform 中设置控件的 Dock 属性。常用的特征有:
...
WPF MVVM 入门学习笔记:从零开始理解 CommunityToolkit 与 ObservableObject 详解
🎯 前言:我在学什么?最近我在学习 WPF(Windows 桌面应用开发),老师提到了一个叫 MVVM 的设计模式。一开始我完全听不懂,各种术语满天飞:“ViewModel”、“绑定”、“命令”、“通知”……头都大了!
但后来我发现,只要用对工具(比如 CommunityToolkit.Mvvm),其实 MVVM 并没有那么难。
今天这篇笔记,就用最简单的话,带你一步步看懂一个完整的 WPF + MVVM 小例子,并重点讲清楚:
ObservableObject 到底是什么?它为什么这么重要?
🧱 第一步:项目结构长什么样?我们有两个核心文件:
MainWindow.xaml:界面(View)
MainWindowViewModel.cs:数据和逻辑(ViewModel)
它们通过“数据绑定”连接在一起,互不干扰,这就是 MVVM 的核心思想。
🔧 第二步:ViewModel 代码详解(C# 部分)123456789101112131415161718192021222324252627282930313233343536373839404142using Commu ...
WPF数据绑定不难!用生活中的例子带你轻松入门
🧩 一、代码整体结构这段代码属于一个 WPF 窗口类(MainWindow) ,它的作用是创建一个窗口,并在窗口加载时设置一个数据绑定。
123456789101112131415161718namespace WpfDependencyProp{ public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); // 初始化界面 var student = new Student(); student.Age = 18; var binding = new Binding(); binding.Source = student; binding.Path = new PropertyPath("Age"); this.btnDp.Se ...
思源笔记现用代码片段记录
使用主题:VSCode Lite Edit
代码片段记录左上方状态栏颜色1234:root[data-theme-mode=dark] { --mk-toolbar-item--active: #3c3c3c !important; --mk-toolbar-item-barWorkspace--hover: #3c3c3c !important;}
底部菜单栏颜色12345678910.status { background-color: #3C3C3C;}.status * { color: #Dadada; font-size: 14px; font-weight: 600; font-family: 'Cascadia Mono', 'Cascadia Code', 'Microsoft YaHei UI', var(--b3-font-family);}
虚线备注12345/* 虚线备注 CSS片段 https: ...
TextBlock 和 TextBox 有什么区别
在 WPF(Windows Presentation Foundation)中,TextBlock 和 TextBox 是两个常用于显示文本的控件,但它们的用途、功能和适用场景有很大的区别。下面是它们的详细对比:
一、基本定义✅ TextBlock
命名空间:System.Windows.Controls
用途:主要用于显示只读文本内容。
特点:支持富文本格式(如字体、颜色、超链接等)。
继承自:FrameworkElement
✅ TextBox
命名空间:System.Windows.Controls
用途:用于输入和编辑文本。
特点:用户可以编辑内容,支持多行文本、滚动条、文本选择等。
继承自:Control
二、功能对比
特性
TextBlock
TextBox
是否可编辑
❌ 不可编辑
✅ 可编辑
支持富文本
✅ 支持(通过 Inlines)
⚠️ 有限支持(需要使用 RichTextBox)
显示静态文本
✅ 推荐
❌ 不推荐
用户交互
❌ 无输入交互
✅ 支持键盘输入、选择、剪贴板等
性能
✅ 更轻量,性能更好
⚠️ ...
CSharp 四部曲学习记录
C#入门学习记录
概述
程序语言是什么
程序思维
开发环境搭建
VS窗口介绍
理解写代码这件事
注释
程序文件的基础结构
变量
变量的本质
变量的命名规范
常量
转义字符
隐式转换
显式转换
异常 ...
使用WPF实现矩形渐变色
实现效果:
整体代码展示:
1234567891011121314151617181920212223<Window x:Class="WpfForXaml.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfForXaml" mc:Ignora ...
写给自己的WPF第一课
123456789101112<Window x:Class="WpfForXaml.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfForXaml" mc:Ignorable="d" Title="Ma ...
OPC协议相关知识
🌟 一、什么是 OPC 协议?OPC(OLE for Process Control) 是一种工业通信标准,用于在工业设备(如PLC、传感器、仪表)和软件系统(如SCADA、MES、HMI)之间交换数据。
简单理解:OPC 就是工业设备和软件之间“说话”的通用语言。
常见的 OPC 协议分类:
类型
说明
OPC DA(Data Access)
用于实时数据读写(经典OPC,基于COM/DCOM)
OPC UA(Unified Architecture)
新一代OPC协议,跨平台、安全、支持复杂数据模型
我们今天重点讲的是 OPC UA,因为它是目前主流,支持现代工业通信需求。
🧠 二、OPC 的作用及功能OPC 的核心作用是:
统一通信标准:不同厂商的设备可以使用统一接口通信。
读写设备数据:从PLC、传感器等设备中读取或写入数据。
报警与事件:接收设备的异常信息或事件通知。
历史数据访问:查询设备的历史数据记录。
方法调用:调用设备上的函数或方法(如启动、停止等)。
🔧 三、OPC UA 的工作原理(通俗理解)OPC UA 使用 客 ...
调用 OPC DA COM 接口时的模板代码的理解
这两段代码:
123456var serverHandles = new int[2] { 0, item.ServerHandle };var serverHandleArray = (Array)serverHandles;var values = new object[2];var valuesArray = (Array)values;var errors = new string[2];var errorsArray = (Array)errors;
和
1234567group.SyncRead((short)OPCAutomation.OPCDataSource.OPCDevice, 1, ref serverHandleArray, out valuesArray, out errorsArray, out var qualities, out var timeStamps);
✅ 是否需要“记住”它们?答案是:不需要死记硬背,但要理解其作用和使用方式。
这类代码属于 调用 OPC DA COM 接口时的模板 ...
百天打卡
圣人以心束行 ,君子以行束心
七月份打卡记录
第1天打卡 : 2025-07-21
第1天打卡 : 2025-07-22
Modbus RTU协议与称重设备(PSD900)通信 代码理解
源代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172using HslCommunication.ModBus;using HZH_Controls.Controls;using ModbusDemo.Helper;using S ...
网络通信相关知识
网络通信简介网络通信是指通过计算机网络在不同设备之间交换数据的过程。它的作用在于连接不同的计算资源,使它们能够共享信息、进行协作和提供服务。无论是在家庭内部的智能家居系统还是全球范围内的互联网应用,网络通信都是不可或缺的一部分。
实际工作中如何使用网络通信?在网络编程中,我们通常使用套接字(Socket)来实现网络通信。Socket是网络通信的基础,它允许程序通过网络发送和接收数据。在C#中,可以使用System.Net.Sockets命名空间下的类来进行网络编程。
网络七层模型OSI(开放系统互联)模型将网络通信分为七个层次:
物理层:处理电气、机械、过程和功能等手段,以激活、维持和关闭物理链路。
数据链路层:负责节点间的数据传输,并进行错误检测与纠正。
网络层:负责路由选择和逻辑寻址。
传输层:确保端到端的可靠数据传输,包括TCP和UDP协议。
会话层:管理不同机器上的用户之间的对话。
表示层:负责数据格式转换、加密解密等。
应用层:为应用程序提供网络服务接口。
TCP/UDP协议
TCP(Transmission Control Protocol):面向连接的协议, ...
串口通讯知识点扫盲
串口通讯简介串口通讯是一种通过串行接口在设备之间传输数据的方法。它按照位(bit)的方式发送数据,每次只传送一个比特的数据。虽然速度相对较慢,但由于其实现简单、成本低,在许多应用中仍然非常常见。
作用:主要用于两个设备间的点对点通信,如计算机与调制解调器、传感器或其他嵌入式系统之间的数据交换。
关键术语解释
波特率(Baud Rate):指每秒钟可以传输的最大符号数(通常等于比特数),单位为bps(bits per second)。例如9600 bps表示每秒最多可传输9600个比特。
停止位:用于标记一个字节传输结束的信号。一般有1位或2位停止位。
校验位:为了检测传输过程中可能出现的错误而设置的额外位。常见的有无校验、奇校验和偶校验。
串行 vs 并行:串行是一次传输一位数据;并行则一次传输多位数据(如8位同时传输)。
异步 vs 同步:异步通信不需要同步时钟信号,依赖于起始位和停止位来识别数据帧;同步通信则需要时钟信号以保持发送方和接收方同步。
双工:
半双工:同一时间只能进行单向通信。
全双工:可以同时双向通信。
普通串口、RS232、RS485:
RS232 ...