C# 如何在水平堆叠布局中居中放置文本?
我有一个StackLayout,用于在XAML中创建导航栏。此水平堆叠布局包含按钮和标签。问题是,文本不完全是中心的,我似乎不能完美地在中间。有人能帮我把这个文本放在这个布局的中心吗?顺便说一句,我在用XamarinC# 如何在水平堆叠布局中居中放置文本?,c#,android,ios,xaml,xamarin,C#,Android,Ios,Xaml,Xamarin,我有一个StackLayout,用于在XAML中创建导航栏。此水平堆叠布局包含按钮和标签。问题是,文本不完全是中心的,我似乎不能完美地在中间。有人能帮我把这个文本放在这个布局的中心吗?顺便说一句,我在用Xamarin <!-- Nav Bar--> <StackLayout Orientation="Horizontal" HeightRequest="45" BackgroundColor="{StaticResource Teal}"> <StackLayo
<!-- 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>
如您所见,应用程序标题未居中…当您希望将视图放置在特定位置时,StackLayout并不理想。如果您有许多视图,并且希望它们都以合理的方式显示,这是很好的 当您想要像素完美的东西时,有两种很棒的布局:
- 绝对布局
- 相对论
<AbsoluteLayout x:Name="NavBarLayout" HeightRequest="45" BackgroundColor="Aqua">
<Button x:Name="btnBack" TextColor="White" FontSize="40" BackgroundColor="Transparent" Text="<" />
<Label x:Name="labelTitle" TextColor="White" FontSize="24" Text="Hello World!" YAlign="Center" XAlign="Center" LineBreakMode="TailTruncation" />
</AbsoluteLayout>
我知道这是一个非常古老的帖子,但对于仍有类似问题的人,我使用以下方法解决了它:
HorizontalOptions="Center"
在XAML中的StackLayout
定义上。我使用的完整定义如下:
<StackLayout Spacing="5" Orientation="Horizontal" x:Name="ButtonLayout" HorizontalOptions="Center">
标签位于剩余空间的中心(减去按钮后)。这就是StackLayout的工作原理。使用不同类型的布局可能更容易实现这一点。我认为绝对布局或相对布局在这种情况下会更好。如果你愿意的话,我会用一个简单的答案来完成这个任务。嘿,谢谢!我真的被困在这个问题上,所以这将是一个非常大的帮助。这绝对是我一直在寻找的解决方案类型。非常感谢。
<StackLayout Spacing="5" Orientation="Horizontal" x:Name="ButtonLayout" HorizontalOptions="Center">