2015-10-15 3 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, поместите два столбца в свою сетку, столбец 0 Ширина Auto, Column 1 Width * с двумя ярлыками в их соответствующих столбцах и nowrap на вашей «платежной карте», –

ответ

4

Вставьте метки LineBreakMode = "NoWrap" в свои метки. Таким образом вы можете избежать обертывания.

Но если у вас недостаточно места, слово будет вырезано.

0

Вы можете добиться желаемого результата, объединив обе этикеты, содержащиеся в горизонтально выровненном стеке StackLayout, в один ярлык и установите LineBreakMode = "WordWrap". XAML имеет отличную функцию, известную как StringFormat. Вы можете использовать это, чтобы добавить статический текст «Сертификационная комиссия:» в связанное свойство сертификации. Вашей Этикетка должна выглядеть следующим образом:

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