- Notifications
You must be signed in to change notification settings - Fork 22
StackLayout
L edited this page Jan 2, 2018
·
8 revisions
堆栈式地放置内容
可以在xaml中完成视图,也可以在cs代码中完成视图
Xamarin的所有视图和布局都是可以1.在xaml中完成,2.在cs代码中完成视图(类比WPF)
varred=newLabel{Text="Stop",BackgroundColor=Color.Red,FontSize=20};varyellow=newLabel{Text="Slow down",BackgroundColor=Color.Yellow,FontSize=20};vargreen=newLabel{Text="Go",BackgroundColor=Color.Green,FontSize=20};//内容Content=newStackLayout{//间距Spacing=10,Children={red,yellow,green}};这里注意默认生成的是Page,不是ContentPage,要手动修改,不然无效
<ContentPagex:Class="XamarinDemo.DemoPages.StackLayoutExample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="using:XamarinDemo.DemoPages"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d"Padding="20"><StackLayout Spacing="10"><Label Text="Stop"BackgroundColor="Red"Font="20"/><Label Text="Slow down" BackgroundColor="Yellow" Font="20"/><Label Text="Go" BackgroundColor="Green" Font="20"/></StackLayout></ContentPage>
Orientation:摆放方向
//垂直(从上到下)
Vertical = 0,
//水平(从左往右)
Horizontal = 1
VerticalOptions:垂直(上下)方向的选项
HorizontalOptions:水平(左右)方向的选项
Start
Center
End
Fill
StartAndExpand
CenterAndExpand
EndAndExpand
FillAndExpand
//内容Content=newStackLayout{//间距Spacing=10,//垂直方向上,从底部出发VerticalOptions=LayoutOptions.End,//堆放三个Label的方向是水平Orientation=StackOrientation.Horizontal,//水平方向上,从开始(左边)出发HorizontalOptions=LayoutOptions.Start,Children={red,yellow,green}};
https://github.com/zLulus/NotePractice/tree/dev3/Xamarin.Forms/XamarinDemo/XamarinDemo/XamarinDemo/DemoPages 的StackLayoutExample
StackLayout的Children定义是
// 摘要:
// Gets an IList<View> of child element of the Layout.
public IList<T> Children { get; }
所以Children可以装下View的集合,不止是Label,也可以是ListView等等
varlistView=newXamarin.Forms.ListView{RowHeight=40};listView.ItemsSource=newstring[]{"Buy pears","Buy oranges","Buy mangos","Buy apples","Buy bananas"};Content=newStackLayout{VerticalOptions=LayoutOptions.FillAndExpand,Children={listView}};https://github.com/zLulus/NotePractice/tree/dev3/Xamarin.Forms/XamarinDemo/XamarinDemo/XamarinDemo/DemoPages 的StackLayoutExample 的ListViewInStackLayout
同时设置xaml和cs代码,哪个在后面,以哪个为准,相当于被覆盖了