使用StackLayout标记包装

ste*_*eaw 15 xaml label word-wrap xamarin

我正在使用Xamarin并使用XAML创建我的视图,我无法为我的生活获得这个标签以我想要的方式包装.如果标签到达屏幕的边缘,我希望它像这样包裹......

这是我想要的样子

现在它看起来像这样......

这就是它出现的方式

这是我的代码:

<StackLayout Orientation="Vertical" HorizontalOptions="StartAndExpand" BindingContext="{Binding CurrentProviderDetails}" Padding="20,20,20,20" >
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
<!--Certification Board-->
  <StackLayout Orientation="Horizontal" HorizontalOptions="StartAndExpand" Grid.Row="0" Grid.Column="0" >
    <Label Text="Certification Board: " FontSize="13" HorizontalOptions="Fill" VerticalOptions="CenterAndExpand" />
    <Label Text="{Binding Certification}" VerticalOptions="CenterAndExpand"  HorizontalOptions="Center" Font="17" LineBreakMode="WordWrap"/>
  </StackLayout>
 </Grid>
</StackLayout>
Run Code Online (Sandbox Code Playgroud)

这不需要在网格中; 这只是我现在尝试的方法.我唯一的要求是'认证委员会'是一个标签,我必须传入一个字,当它到达屏幕的末尾时,它会换行.任何帮助都会很棒,谢谢!

Leo*_*ida 14

在标签中放置一个LineBreakMode ="NoWrap"标签.这样你就可以避免换行.

但如果你没有足够的空间,这个词就会被删除.


小智 10

您可以通过将水平对齐的 StackLayout 中包含的两个标签组合成一个标签并设置 LineBreakMode="WordWrap" 来实现所需的外观。XAML 有一个很棒的特性,称为 StringFormat。您可以使用它来将静态“Certification Board:”文本添加到绑定的 Certification 属性中。您的标签应如下所示:

<Label Text="{Binding Certification, StringFormat='Board Certification:{0:F0}'}" LineBreakMode="WordWrap"/>
Run Code Online (Sandbox Code Playgroud)