(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的定义,大家能看到蓝色的波浪线说明两种写法只能用其中一种。
代码应用:
- (2)StackLayout
语法:
<StackLayout Orientation="Horizontal" Spacing="10" HorizontalOptions="Center" VerticalOptions="Center"/>
解读:
StackLayout和WPF中的StackPanle基础用法没有太大区别,不过还是多了一些MAUI中的特性。(本文只演示了部分用法不代表全部)
属性名 | 作用 |
---|---|
Orientation | 指定布局内容横向排列或纵向排列 |
Spacing | 指定布局内容的排列间距 |
HorizontalOptions | 按比例横向空间分布布局内容 |
VerticalOptions | 按比例纵向空间分布布局内容 |
代码应用:
<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的文档。)
当窗体缩小时,布局会“收拢”。
- (4)AbsoluteLayout
语法:
<AbsoluteLayout>
<Button AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="50,50"/>
</AbsoluteLayout>
解读:
AbsoluteLayout和WPF中的Canvs非常类似。绝对定位的布局方式。(本文只演示了部分用法不代表全部)
属性名 | 作用 |
---|---|
AbsoluteLayout.LayoutFlags | 指定布局方式的枚举 |
AbsoluteLayout.LayoutBounds | 指定控件位置的坐标(示例中:x轴50,y轴50),可选值:AutoSize, 比例值(1为最大值可填0.7),位置值50 |
相关文章
- .NET跨平台框架选择之一 - Avalonia UI
- 大数据的应用实例_net开源开发web框架
- ASPCMS_net开源项目
- 宝塔面板Linux系统通过Docker部署VB.NET Asp.Net Core WebAPI应用
- [接上篇]在Window10/11的Linux子系统Docker上部署VB.NET Asp.Net Core WebAPI应用
- .NET MAUI实战 FilePicker
- .net搭建ASP.NET应用程序在Linux系统上(linux搭建asp)
- 联手开发:.NET与Oracle的合作之路(.net和oracle)
- MySQL与VB.NET的数据库开发实践(mysqlvb.net)
- 微软开源 .NET 一年后,ASP.NET 情况分析
- Net缓存技术Redis:管理数据量大的梦想(net缓存技术redis)
- 数据使用NET改变Oracle数据库的奥秘(net修改oracle)
- NET与MySQL的无限结合(.net 连接mysql)
- NET操作MySQL数据库快速入门(.net读写mysql)
- 使用NET来连接MySQL数据库的简单方法(.net怎么连mysql)
- Net中连接MySQL技术简述(.net中引用mysql)
- Redis集群实现高性能NET应用(redis集群 .net)
- 探索Oracle中NET位置的背后秘密(oracle中net位置)
- 从ASP过渡到ASP.net遗留的二十大积习
- 如何为asp.net网站项目添加子项目
- asp.net存储过程调用
- ASP.Net前台调用后台变量的方法
- ASP.NET中Request.Form中文乱码的解决方法
- asp.net下ajax.ajaxMethod使用方法
- 答你所问.NET小常识方便学习asp.net的朋友
- asp.net多图片上传实现程序代码
- asp.net文件路径之获得虚拟目录的网站的根目录
- .net客户端导出Excel实现代码及注意事项
- 使用asp.net的pageDataSource中时索引问题解决方法
- ASP.NET中DataTable与DataSet之间的转换示例
- ASP.NET中Execl导出的六种方法实例
- asp.net后台注册js的四种方法分享
- ASP.NET中TimeSpan的用法实例解析
- asp.net中的GridView分页问题
- ASP.NET中IsPostBack用法详解
- 在Asp.net中为图像加入水印信息并保存为Jpg类型