我有这个StackLayout,我曾经在XAML中创建一个导航栏 . 此Horizontal StackLayout包含一个按钮和标签 . 问题是文本没有完全居中,我似乎无法在中间完美地完成它 . 有人可以帮我把这个文本集中在这个StackLayout中吗?顺便说一下,我正在使用Xamarin .
<!-- Nav Bar-->
<StackLayout Orientation="Horizontal" HeightRequest="45" BackgroundColor="{StaticResource Teal}">
<StackLayout.Padding>
<OnPlatform x:TypeArguments="Thickness"
iOS="10,0,0,0"
Android="0,0,0,0"
WinPhone="0,0,0,0" />
</StackLayout.Padding>
<Button x:Name="btnBack" HorizontalOptions="Start" TextColor="White" BackgroundColor="Transparent"
Command="{Binding BackCommand}" IsVisible="{Binding CanGoBack}" />
<Label HorizontalOptions="CenterAndExpand" VerticalOptions="Center" TextColor="White" FontSize="24" Text="{Binding TitleBarText}" LineBreakMode="TailTruncation" />
</StackLayout>
正如您所看到的,应用 Headers 不在中心...
1 回答
当您想要将View放在特定位置时,StackLayout并不是很好 . 当你有很多观点时,这是很好的,你希望它们都以合理的方式出现 .
如果你想要像素完美的东西,有两个很棒的布局:
AbsoluteLayout
RelativeLayout
您可以在此处找到有关这些布局的一些重要信息:http://adventuresinxamarinforms.com/2015/05/05/demystifying-xamarin-forms-absolutelayout-and-relativelayout-positioning/
对于你的具体问题,我会说使用AbsoluteLayout,因为用它来集中Label是非常容易的 . 对于此解决方案,我将Nav Bar的StackLayout更改为AbsoluteLayout,并在代码后面添加了布局参数 .
XAML:
背后的代码: