WPF入门到放弃(七)| 常用布局控件的用法

2021-11-08 13:53:56 浏览数 (1)

WPF也是我今年刚开始深入去了解,看了不少的学习视频和书籍,受剑神Python入门到放弃的启发,想把这段时间学习内容做个总结,一是因为我相信技术总是需要不断的总结与练习才能有所进步,二是希望帮助初学者对WPF有个初步的了解,大家一起探讨学习进步。

来吧!一起学起来!

  1. WPF入门到放弃(一) | 安装与创建
  2. WPF入门到放弃(二) | 初识XAML
  3. WPF入门到放弃(三)| 制作串口调试助手
  4. WPF入门到放弃(四)| 给串口调试助手列表赋值(附调试软件)
  5. WPF入门到放弃(五)| 串口的读取与写入(程序&附串口调试精灵)
  6. 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" 距离窗口的左上右下的距离前面的文章中有介绍。

关于布局简单介绍到这里,好看的布局还是需要多多去实践的,下期主要去介绍其它的一些控件。

0 人点赞