2015-10-15 14 views
7

Ich verwende Xamarin und mit XAML meiner Sicht zu schaffen, und ich kann für das Leben von mir nicht bekommen dieses Label den Weg wickeln ich es will. Wenn das Etikett an den Rand des Bildschirms wird, möchte ich so wickeln ...Label-Verpackung mit StackLayout

This is the way I want it to look

Gerade jetzt ist es so aussieht ...

This is how it is showing up

hier ist mein Code:

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

Dies muss nicht in einem Raster sein, das war nur die Methode, die ich jetzt versuche. Meine einzige Anforderung ist, dass "Certification Board" ein Label ist, und ich muss einen Wert übergeben, der das Wort umschließt, wenn es am Ende des Bildschirms angekommen ist. Jede Hilfe wäre toll, Danke!

+3

Gibt es einen besonderen Grund, warum Sie ein Gitter haben, in einem StackLayout eingebettet ist, dann mit einem StackLayout in sie eingebettet? Wenn nicht, alle StackLayouts abzweigen, zwei Spalten in das Gitter einfügen, Spalte 0 Breite Auto, Spalte 1 Breite * mit den 2 Etiketten in ihren jeweiligen Spalten und jetzt auf der "Zertifizierungskarte" –

Antwort

4

Setzen Sie ein LineBreakMode = "NoWrap" -Tag in Ihre Etiketten. Auf diese Weise können Sie den Umbruch vermeiden.

Aber wenn Sie nicht genug Platz haben, wird das Wort geschnitten.

0

Sie können den gewünschten Look erzielen, indem beide der Etiketten enthalten in Ihrem horizontal ausgerichteten StackLayout in einem einzigen Etikett und Einstellung linebreak = „WordWrap“ kombiniert. XAML hat ein großartiges Feature namens StringFormat. Sie können dies verwenden, um den statischen Text "Certification Board:" an die gebundene Certification-Eigenschaft anzuhängen. Ihr Etikett soll wie folgt aussehen:

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