一、布局控件目录

二、布局实操经验

三、FlexLayout弹性布局


(资料图片)

1、FlexLayout弹性布局,和前端的Flex弹性布局,几乎一样。FlexLayout是容器,可以定义Direction/主轴方向、Wrap/子元素在主轴方向上是否换行/列、JustityContent/AlignItems/AlignContent子元素整体对齐方式。同时,在子元素上可以通过附加属性,定义子元素的个体行为,如Order,定义子元素排列顺序;Basis/Grow/Shrink,定义子元素主轴方向的尺寸形为;AlighSeft,定义子元素在交叉轴方向的对齐行为。

2、使用FlexLayout布局时的经验

3、使用FlexLayout完成圣杯布局

                    

四、绑定布局BindableLayout,以附加属性的形式,在宿主布局容器内,实现一个集合展示。实现的功能,与ListView或CollectionView类似,在条目数较少、无滚动、无选择按钮情况时,可以使用BindableLayout。

1、定义一个ViewModel,作为数据源

//直接New一个Employee集合//ImageSource为Resources/Images目录下的图像public partial class MainPageViewModel: ObservableObject{    [ObservableProperty]    private List employees = new List    {        new Employee{Name = "HeLiu",ImageSource="he_liu.png"},        new Employee{Name = "HaiShang",ImageSource="hai_shang.png"},        new Employee{Name = "LuoRi",ImageSource="luo_ri.png"},        new Employee{Name = "GongYuan",ImageSource="gong_yuan.png"},    };}

2、使用BindableLayout

                                                                                                                    

五、状态容器StateContainer,以附加属性的形式,在宿主布局容器内,根据不同的状态条件,显示不同的外观。

1、安装Nuget包,Community.Toolkit.Maui,并在入口文件MauiProgram.cs文件中设置【builder.UseMauiApp().UseMauiCommunityToolkit()】

2、定义一个ViewModel,作为数据源

public partial class MainPageViewModel: ObservableObject{    [ObservableProperty]    private string myCurrentState;    [RelayCommand]    private void ChangeMyCurrentStateLoading()    {        MyCurrentState = "Loading";    }    [RelayCommand]    private void ChangeMyCurrentStateSuccess()    {        MyCurrentState = "Success";    }    [RelayCommand]    private void ChangeMyCurrentStateEmpty()    {        MyCurrentState = "";    }}

3、使用StateContainer

                                                                                                                                                                                                    

推荐内容