2015-10-15 28 views
7

Sto usando Xamarin e sto creando la mia visualizzazione con XAML e non posso per tutta la vita di me ottenere questa etichetta per avvolgere nel modo in cui voglio. Se l'etichetta arriva al bordo dello schermo, voglio per avvolgere come questo ...Etichetta avvolta con StackLayout

This is the way I want it to look

In questo momento si sta cercando in questo modo ...

This is how it is showing up

Ecco il mio codice:

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

questo non ha bisogno di essere in una griglia, questo era solo il metodo che stavo cercando, per ora. Il mio unico requisito è che 'Certification Board' sia un'etichetta, e devo passare un valore che la parola esegue quando arriva alla fine dello schermo. Qualsiasi aiuto sarebbe fantastico, grazie!

+3

C'è un motivo particolare si dispone di una griglia, incorporato in uno stackLayout, poi con uno stackLayout incorporato all'interno di esso? In caso contrario, elimina tutti gli StackLayouts, inserisci due colonne nella griglia, colonna 0 larghezza automatica, colonna 1 larghezza * con le 2 etichette nelle rispettive colonne e nowrap sulla tua "scheda di certificazione" –

risposta

4

Inserire un tag LineBreakMode = "NoWrap" nelle etichette. In questo modo puoi evitare l'involucro.

Ma se non si dispone di spazio sufficiente, la parola verrà tagliata.

0

È possibile ottenere l'aspetto desiderato combinando entrambe le etichette contenute nello StackLayout allineato orizzontalmente in un'unica etichetta e impostando LineBreakMode = "WordWrap". XAML ha una grande funzionalità nota come StringFormat. È possibile utilizzare questo per anteporre il testo statico "Certification Board:" alla proprietà Certification associata. vostra etichetta dovrebbe essere così:

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