2015-10-15 30 views
7

我使用Xamarin并使用XAML创建了我的视图,但我无法为我的生活获取此标签以便按照我希望的方式进行包装。如果标签获取到屏幕的边缘,我想包这样的... ...使用StackLayout进行标签封装

This is the way I want it to look

现在它正在寻找这样的...

This is how it is showing up

这里是我的代码:

<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> 

这不需要在一个网格中,这只是我现在正在尝试的方法。我唯一的要求是'认证委员会'是一个标签,并且我必须传递一个值,当它到达屏幕的末尾时,这个值将被换行。任何帮助将是真棒,谢谢!

+3

有你有一个网格,嵌在StackLayout什么特别的原因,然后嵌入了一个StackLayout?如果不是,请将所有StackLayouts排成一行,在Grid中放置两列,Column Width Width Auto,Column 1 Width *以及各自列中的2个标签,并在您的“认证板” –

回答

4

在您的标签中放置一个LineBreakMode =“NoWrap”标签。这样你可以避免包装。

但是,如果你没有足够的空间,这个词将被剪切。

0

您可以通过将包含在水平对齐的StackLayout中的两个标签组合到一个Label中并设置LineBreakMode =“WordWrap”来实现所需的外观。 XAML有一个称为StringFormat的强大特性。您可以使用它将静态“认证委员会:”文本添加到绑定的认证属性。 您的标签应该是这样的:

<Label Text="{Binding Certification, StringFormat='Board Certification:{0:F0}'}" LineBreakMode="WordWrap"/> 
相关问题