C# 第二阶段 modbus

1:nuget添加依赖

新建项目后,添加NModbus,

2:测试软件:Modbus slave ,新建一个从站,并连接

3:通信测试

4:本次学到的内容

4.1:用的DockPanel标签,使其能自适应。

4.2:ContentControl标签,切换主页面布局

4.3:mvvm架构,绑定数据以及操作

cs 复制代码
<Window x:Class="Device_Data.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:Device_Data"
        mc:Ignorable="d"
        Title="自动化设备" Height="auto" Width="auto" MinWidth="800" MinHeight="800" Background="#E1F5FE">
    <Grid>
        <DockPanel LastChildFill="true">
            <!--LastChildFill="true" true 最后一个子元素填充剩余空间-->
            <Border DockPanel.Dock="Left" BorderBrush="Black" BorderThickness="1" Width="100">
                <StackPanel>
                    <Button  Content="主页面" Height="30" Width="75" Margin="0,20,0,0"/>
                    <Button Click="show_console" Command="{Binding consoleView}" Content="输出" Height="30" Width="75" Margin="0,20,0,0"/>
                    <Button Click="show_data" Command="{Binding dataView}" Content="看板" Height="30" Width="75" Margin="0,20,0,0"/>
                </StackPanel>
            </Border>
            <Border DockPanel.Dock="Top" BorderBrush="Black" BorderThickness="1" Width="auto" Height="50">
                <StackPanel Orientation="Horizontal">
                    <Label Content="IP:" Height="auto" Width="auto" Margin="10"/>
                    <TextBox Name="IP_Data" Height="20" TextWrapping="Wrap" Text="192.168.10.246" Width="auto" MinWidth="100"/>
                    <Label Content="端口:" Height="auto" Width="auto" Margin="10"/>
                    <TextBox Name="Port" Height="20" TextWrapping="Wrap" Text="502" Width="auto" MinWidth="50"/>
                    <Button Click="link" Content="连接" Height="20" Width="56" Margin="50,10,1,10"/>
                    <Button Click="stop_link" Content="断开连接" Height="20" Width="56" Margin="20,10,1,10"/>
                    <Button Click="read_data" Content="开始接收" Height="20" Width="56" Margin="20,10,1,10"/>
                    <Button Click="stop_read" Content="停止接收" Height="20" Width="56" Margin="20,10,1,10"/>
                </StackPanel>
            </Border>
            <Border DockPanel.Dock="Top" BorderBrush="Black" BorderThickness="1" Width="auto" MinHeight="500">
                <ContentControl x:Name="mainConten"/>
            </Border>
            <Border DockPanel.Dock="Top" BorderBrush="Black" BorderThickness="1" Height="40">
                <StackPanel HorizontalAlignment="Left"  VerticalAlignment="Bottom" Height="30"  Width="auto" Orientation="Horizontal">
                    <Label Content="控制台" Height="28" Width="87" FontSize="15"/>
                    <Button Click="clear" Content="清空" Height="30" Width="87"/>
                </StackPanel>
            </Border>
            <Border DockPanel.Dock="Bottom" Background="White" BorderBrush="Black" BorderThickness="1" Width="auto" Height="auto"  Margin="10,10,10,10">
                <TextBox Name="result" TextWrapping="Wrap" Text="" TextChanged="TextBox_TextChanged"/>
            </Border>
        </DockPanel>

    </Grid>
</Window>

源码地址:c#WPFModbusmvvm应用资源-CSDN文库

相关推荐
Sayai4 分钟前
Neo4j 内嵌模式(Embedded)实战:Java 嵌入式 vs 服务端部署的写入性能对比与 GC 调优
java·开发语言·性能优化·neo4j·图数据库
“AI国潮设计-小江”41 分钟前
【SDXL实战】用AI生成“财神爷蛋糕×英歌舞人物”潮汕国潮甜品IP,附Prompt与批量生成思路
开发语言·人工智能·python·aigc
繁华的地方不一定留下你的脚印42 分钟前
C++线程如何安全停止与唤醒:std::jthread、stop_token与condition_variable
开发语言·c++
caoerzhong1 小时前
跨境海外仓怎么管:JeeWMS 开源 Java 仓库管理系统打通头程、海外仓与尾程
java·开发语言·开源
码云数智-大飞1 小时前
新手写 Python 代码,如何规范命名、减少 Bug
开发语言·python·php
福兮说1 小时前
JS 正则的六个坑:带 g 的 test() 一真一假、空匹配死循环、replace 里的 $
开发语言·前端·javascript·正则表达式
码艺-Alimjan1 小时前
Web 网站打包桌面应用的另一种方式,超级简单(C# exe 33Kb)
开发语言·前端·c#
沫璃染墨1 小时前
《从零入门Linux系统篇(五十一):线程篇·四——pthread线程库详解:从线程创建到终止与分离》
linux·运维·服务器·开发语言·c++·系统架构·线程
yexianglunbai2 小时前
中间件(Middleware)详解:概念、作用与实战
java·开发语言·中间件
叶总没有会2 小时前
OpenFeign
java·开发语言·springcloud·openfeign