我正在尝试制作两个标签,每个标签占父级宽度的50%(StackLayout) 我在两个Label上尝试使用Fill,FillAndExpand,StartAndExpand,但它不起作用:
<StackLayout Orientation="Horizontal">
<Label Text="AAAAAAAAAAAAAAAAAAAAAAAAA" HorizontalOptions="FillAndExpand" />
<Label Text="BBBB" HorizontalOptions="FillAndExpand" />
</StackLayout>
答案 0 :(得分:2)
改为使用Grid
。
XAML
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Text="AAAAAAAAAAAAAAAAAAAAAAAAA" Grid.Column="0"/>
<Label Text="BBBB" Grid.Column="1"/>
</Grid>
两个*
表示列的宽度相同。如果您希望第一列的次数大于第二列,则可以将第一个宽度更改为2*
。
您也可以使用EndAndExpand
让文字右对齐
答案 1 :(得分:1)
我知道这个问题是去年问的。但我希望我的回答对其他人有帮助。
实际上,您可以使用StackLayout
获得中心并切成两半。我喜欢使用StackLayout
,因为它具有自己的自动大小调整功能,如果将3 Views
放在StackLayout.Children
中,则StackLayout
会将这3列以相同的精确大小进行划分。
这是我在C#中的操作方式:
Content = new StackLayout{
Orientation = StackOrientation.Horizontal, //Set the StackLayout to start from left to the right
HorizontalOptions = LayoutOptions.CenterAndExpand, //Expand the layout to full width and center it
Children = {
new Label{
Text = "Test One"//you may add HorizontalOptions in here to if you want the text on the left or right
},
new Label{
Text = "Text Two"
}
}
};
这是我在XAML中执行的操作:
<StackLayout Orientation="Horizontal" HorizontalOptions="CenterAndExpand">
<Label Text="Test One"></Label>
<Label Text="Text Two"></Label>
</StackLayout>
我希望这能回答StackLayout
上的问题:)
答案 2 :(得分:0)
先前的答案对我不起作用,但是我所做的是: 在StackLayout中设置HorizontalOptions =“ FillAndExpand”。 设置较大的子项(例如1000)的WidthRequest。 像这样:
<StackLayout Orientation="Horizontal" HorizontalOptions="FillAndExpand">
<Label WidthRequest="1000" Text="Label 1"/>
<Label WidthRequest="1000" Text="Label 2"/>
</StackLayout>