webentwicklung-frage-antwort-db.com.de

Etikettenumwicklung mit StackLayout

Ich verwende Xamarin und erstelle meine Sicht mit XAML, und ich kann dieses Label für mein Leben nicht so bekommen, wie ich es möchte. Wenn das Etikett an den Bildschirmrand gelangt, möchte ich, dass es so umbrochen wird ...

 This is the way I want it to look

Im Moment sieht es so aus ... 

 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; Dies war nur die Methode, die ich jetzt ausprobierte. Meine einzige Voraussetzung ist, dass "Certification Board" ein Label ist, und ich muss einen Wert übergeben, den Word einschließt, wenn es das Ende des Bildschirms erreicht. Jede Hilfe wäre super, danke!

11
stepheaw

Versehen Sie Ihre Etiketten mit einem LineBreakMode = "NoWrap" -Tag. Auf diese Weise können Sie die Umwicklung vermeiden.

Wenn Sie jedoch nicht genug Platz haben, wird das Wort abgeschnitten.

12

Sie können das gewünschte Aussehen erzielen, indem Sie die beiden in Ihrem horizontal ausgerichteten StackLayout enthaltenen Labels zu einem einzigen Label zusammenfassen und LineBreakMode = "WordWrap" setzen. XAML verfügt über eine hervorragende Funktion, die als StringFormat bezeichnet wird. Sie können dies verwenden, um den statischen Text "Certification Board:" der gebundenen Zertifizierungseigenschaft voranzustellen. Ihr Label sollte folgendermaßen aussehen:

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