2017-05-25 9 views
2

Ich habe 2 Etiketten, die verschiedene Schriftarten verwenden müssen, um ein einzelnes Etikett dieses "My Company (c)" (copywrite Symbol) zu machen. "Meine Firma" wird eine große Schrift und die "(c)" eine kleine Schrift sein. Ich kann sie nicht als 1 einzelnes Label erscheinen lassen. Es scheint Probleme mit dem Abstand zu geben. Ich habe folgendes versucht.Xamarin (XAML) Wie man 2 Etiketten nebeneinander legt

<StackLayout Grid.Row="1" Orientation="Horizontal"> 
        <Label 
         x:Name="lbCo" 
         Text="My Company" 
         Style="{DynamicResource LargeLabel}"/> 

        <Label 
         x:Name="lbcopywrite" 
         Text="©" 
         Margin="0,-7,0,0" 
         Style="{DynamicResource SmallLabel}"/> 
       </StackLayout> 

Aber es scheint, wie "My Company (Plätze) (c)"

Irgendwelche Ideen, wie kann es wie "My Company (c)", immer auf der gleichen Linie aussehen lassen und zusammen ?

Antwort

3

Es gibt eine andere Möglichkeit, aber Sie können dem Text keinen Style direkt zuweisen, aber Sie können zahlreiche Fontoptionen auswählen. Sie können jedoch weiterhin einen Style für das Hauptlabel festlegen.

<Label> 
    <Label.FormattedText> 
     <FormattedString> 
      <Span Text="Company" FontAttributes="Bold"/> 
      <Span Text=" ©" FontSize="Micro" /> 
     </FormattedString> 
    </Label.FormattedText> 
</Label> 

Wenn Sie möchten, zu binden, müssen Sie einen Konverter erstellen, die eine FormattedString zurückgibt, und weisen FormattedText. Sie können einen Konverter mit Parametern erstellen, wenn Sie ihn mit verschiedenen Stilen wiederverwenden möchten.

<Label FormattedText="{Binding Text, Converter={StaticResource FormattedStringConverter}}" /> 
+0

Gut zu wissen, wusste nicht, dass Sie Span Text verwenden könnten. Werde das nächste Mal versuchen. Danke – Jon

2

können Sie geben die Spacing Eigenschaft auf dem StackLayout:

<StackLayout Grid.Row="1" Orientation="Horizontal" Spacing="0"> 
    <Label x:Name="lbCo" 
      Text="My Company" 
      Style="{DynamicResource LargeLabel}"/> 

    <Label x:Name="lbcopywrite" 
      Text="©" 
      Margin="0,-7,0,0" 
      Style="{DynamicResource SmallLabel}"/> 
</StackLayout> 

Standardmäßig ist der Wert 6.

+0

einfachste Lösung – Jon

1

ist, sollten Sie die VerticalTextAlignment Eigenschaft verwenden und es zu Zentrum. Sie sollten auch den Etikettenrand für beide auf 0 setzen.

Verwandte Themen