(02).NET MAUI实战 布局

1.概要

既然要做实战开发会建项目之后就需要认识布局控件了,本篇文章分享.NET MAUI中的一些基础常用的布局控件。

  • Grid

  • StackLayout

  • FalyxLayout

  • AbsoluteLayout

2.详细内容

  • (1)Grid

语法:

<Grid RowDefinitions="50,50,50,50" RowSpacing="10" ColumnDefinitions="10,10" ColumnSpacing="10" Margin="{OnPlatform WinUI=5}"></Grid>

解读:

在MAUI中Grid的语法相比WPF来说,有不少的优化我们来逐个看看有哪些更新。(本文只演示了部分用法不代表全部)

属性名作用
RowDefinitions定义有几行(每用一个逗号分隔就代表有几行,以上代码为例有4个50那么就定义了4行高度为50的行)
RowSpacing定义行间距(每行的间隔为10px)
ColumnDefinitions定义有几列(每用一个逗号分隔就代表有几列,以上代码为例有2个10那么就定义了2列宽度为10的列)
ColumnSpacing列间距(每行的间隔为10px)
Margin定义内边距(这里的边距定义还需要指定对应的生效的平台,同时可以指定多个平台的上表现,以上代码的定义是在WinUI的平台上的每行的间隔为5px,还能指定其它平台的内容。如果不关心平台那么可以直接设定default默认全平台都按照这个样式来展现)


同时MAUI中的Grid也保留了以前WPF中Grid的定义,大家能看到蓝色的波浪线说明两种写法只能用其中一种。

427311d05669970e1c52e6ce0a75d3a2.png

代码应用:

2664d36cd4a649ae7e60f50e98929c1f.png

  • (2)StackLayout

语法:

<StackLayout Orientation="Horizontal" Spacing="10"  HorizontalOptions="Center" VerticalOptions="Center"/>

解读:

StackLayout和WPF中的StackPanle基础用法没有太大区别,不过还是多了一些MAUI中的特性。(本文只演示了部分用法不代表全部)

属性名作用
Orientation指定布局内容横向排列或纵向排列
Spacing指定布局内容的排列间距
HorizontalOptions按比例横向空间分布布局内容

e3636dcb63b3c732f4476ba549de21d3.png

VerticalOptions按比例纵向空间分布布局内容

40c31320f9de5c5939bb3c83cc202569.png


代码应用:

<StackLayout Orientation="Horizontal" Spacing="10"  HorizontalOptions="Center" VerticalOptions="Center">
    <Button></Button>
 </StackLayout>
  • (3)FalyxLayout

语法:

<FlexLayout>
    <Button WidthRequest="100" HeightRequest="20"></Button>
    <Button WidthRequest="100" HeightRequest="20"></Button>
    <Button WidthRequest="100" HeightRequest="20"></Button>
</FlexLayout>

解读:

我个人的理解是,该布局控件会自适应父级控件的宽高来自动调整布局。(这个控件的用法可以参考xamarin的文档。)

f137f943bd9182d91a1bee51f09a1ded.png

当窗体缩小时,布局会“收拢”。

21f0a1c877360728abd0c45991d9120c.png

  • (4)AbsoluteLayout

语法:

<AbsoluteLayout>
      <Button AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="50,50"/>
</AbsoluteLayout>

解读:

AbsoluteLayout和WPF中的Canvs非常类似。绝对定位的布局方式。(本文只演示了部分用法不代表全部)

属性名作用
AbsoluteLayout.LayoutFlags指定布局方式的枚举

34fc3028972294635a6ea3ad2eaab6a6.png

AbsoluteLayout.LayoutBounds指定控件位置的坐标(示例中:x轴50,y轴50),可选值:AutoSize, 比例值(1为最大值可填0.7),位置值50
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值