WPF也是我今年刚开始深入去了解,看了不少的学习视频和书籍,受剑神Python入门到放弃的启发,想把这段时间学习内容做个总结,一是因为我相信技术总是需要不断的总结与练习才能有所进步,二是希望帮助初学者对WPF有个初步的了解,大家一起探讨学习进步。
来吧!一起学起来!
- WPF入门到放弃(一) | 安装与创建
- WPF入门到放弃(二) | 初识XAML
- WPF入门到放弃(三)| 制作串口调试助手
- WPF入门到放弃(四)| 给串口调试助手列表赋值(附调试软件)
- WPF入门到放弃(五)| 串口的读取与写入(程序&附串口调试精灵)
- WPF入门到放弃(六)| 画面优化与发布(附源程序)
说明:
本文主要介绍WPF(Windows Presentation Foundation),是微软推出的一项基于windows操作系统、.NET平台的C/S客户端构建技术。
软件下载地址:
https://visualstudio.microsoft.com/zh-hans/vs/
这里使用的是Visual Studio 2019 社区版
网友问答
由于种种原因,不能及时回复各位网友问题,说声抱歉,现在统一回答之前网友提出的问题:
我了解的HslCommunication就满足您说的,功能非常强大。
这个前台是XAML,后台是用的C#。
源码联系管理员获取。
用的Visual Studio做的
主要通过判断有收到数据,就把数据显示并换行。同时清空本次数据为下次数据做准备。
提示:
文章附源程序下载地址的获取,
请关注“剑指工控“微信公众号后,
添加管理员,
加入剑指工控微信群后获取。
第7讲
常用布局控件的用法
前6期做串口调试助手主要用到了ComboBox、Label、Button、TextBox、Grid。其它的控件不在赘述,
这里补充说明一下:
Grid:它是最常用的布局控件
介绍一下它的几个规则:
- 行和列都是从0开始计数的
- 行编号或者列编号为0的情况下是可以省略不写的。
- 若控件需要跨越多个行或列,使用Grid.RowSpan=”行数”和Grid.ColumnSpan=”列数”
下面介绍一些其它的一些常用的布局控件。
StackPanel:用于以水平或垂直方式堆叠子元素
主要用于以下场合:
- 同类元素需要紧凑排列
- 移出其中元素后能够自动补缺的布局。
- 主要使用以下三个属性来控制内部元素的布局,Orientation、HorizontalAlignment、VerticalAlignment。
添加一个测试窗口,将App.xaml 中的StartupUri=" MainWindow.xaml" 改为StartupUri="test.xaml"。则运行时显示这个新建的窗口。
StackPanel默认堆栈方向是垂直的,
如果想变成水平排列,使用Orientation="Horizontal"就行了
如果要靠右边,则HorizontalAlignment="Right"
篇幅有限,只能列举个别情况,还需自己去调试Orientation、HorizontalAlignment、VerticalAlignment。三个属性不同组合值的效果。
Canvas:顶级布局控件,用于子内容的绝对定位
可以把Canvas比作一个坐标系,所有的元素通过设置坐标来决定其在坐标系中的位置.这个坐标系的原点并不是在中央,而是位于它的左上角,主要适用的场合:
- 一经设计基本上不会再有改动的布局
- 需要大量使用横纵坐标进行绝对点定位的布局。
将刚才的StackPanel直接换成Canvas,则显示最后一个按钮,因为Canvas的子控件是覆盖的,通过设置Opacity="0"或者Visibility="Hidden"可以将第二个、第三个按钮隐藏。
通过Canvas.Top、Canvas.Bottom 、Canvas.Left、Canvas.Right来调整控件的位置。
DockPanel:定义一个区域
从中可以按相对位置水平或垂直排列各个子元素。
下图可以看出DockPanel中最后一个元素自动填充剩余的空间,可以通过DockPanel.Dock属性,它决定了子控件的停靠的方向。通过设置LastChildFill来禁用自动填充剩余的空间
WrapPanel:按从左到右的顺序位置定位子元素
在包含框的边缘处将内容切换到下一行。
该容器可以看做自动换行功能的StackPanel容器,当我们把窗口的宽度Width="800"改Width="80"时,内部采用的是流式布局,在流延伸的方向上WrapPanel会排列尽可能多的控件,排不下的会新起一行或一列继续排列。
WPF布局面板主要是Grid、StackPanel、Canvas、DockPanel、WrapPanel介绍完了,这些布局面板通常需要Border配合使用。
Border:在另一个元素四周绘制边框或背景
Border只能具有一个子元素。若要显示多个子元素,需要将布局面板放在Border中。BorderBrush="BlueViolet" 设置边框的颜色 BorderThickness="10" 设置边框的线条粗细,Margin="20" 距离窗口的左上右下的距离前面的文章中有介绍。
关于布局简单介绍到这里,好看的布局还是需要多多去实践的,下期主要去介绍其它的一些控件。