2017-09-01 2 views
0

Ich versuche, ein multiline Label vertikal zu zentrieren, das einen Text enthält, der auf 1 oder 2 Linien angezeigt werden kann.Xamarin.Forms: Wie zentriert man ein Multi-Label in einer Zeile?

Im Moment bin ich die erwartete Rendering bekommen nicht in der Lage ...

ich das mehrzeilige Label haben kann, die sich automatisch, aber es ist oben ausgerichtet und nicht zentriert: label is not centered

Diese XAML ist der angehängt:

<Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="*" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="0" /> 
</Grid.RowDefinitions> 

<local:MultiLineLabel 
    Grid.Row="0" 
    Grid.Column="1" 
    BackgroundColor="Orange" 
    Text="{ Binding encart_titre }"   
    VerticalTextAlignment="Center" 
    LineBreakMode="TailTruncation" 
    Lines="2" 
    ... 
/> 

ich auch das Etikett zentrieren kann, aber in diesem Fall ist es nicht automatisch erweitert: enter image description here

Dies ist die beigefügten XAML:

<Grid.RowDefinitions> 
    <RowDefinition Height="*" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="0" /> 
</Grid.RowDefinitions> 

<local:MultiLineLabel 
    Grid.Row="0" 
    Grid.Column="1" 
    BackgroundColor="Orange" 
    Text="{ Binding encart_titre }"   
    VerticalTextAlignment="Center" 
    LineBreakMode="TailTruncation" 
    Lines="2" 
    VerticalOptions="FillAndExpand" 
    ... 
/> 

Müsste Sie eine Erklärung? Ich habe auch versucht StackLayound um das Label hinzuzufügen, aber das hat nichts ändern ...

Antwort

2

Die erste Wahl für eine Steuer Zentrierung wäre VerticalOptions="CenterAndExpand" zu verwenden, haben Sie versucht, dass anstelle von VerticalOptions="FillAndExpand"? Here's more information über die LayoutOptions in Xamarin.Forms.

So wäre dies der richtige Weg sein, senkrecht zum Zentrum:

<local:MultiLineLabel 
    Grid.Row="0" 
    Grid.Column="1" 
    BackgroundColor="Orange" 
    Text="{ Binding encart_titre }"   
    VerticalTextAlignment="Center" 
    LineBreakMode="TailTruncation" 
    Lines="2" 
    VerticalOptions="CenterAndExpand" <!-- This one here --> 
    ... 
/> 
+0

dankt es mit 'VerticalOptions =„CenterAndExpand“' –

+1

Nur eine wenig Spezifikation funktioniert: das Etikett in einem 'StackLayout' eingebettet werden muß, mit 'VerticalOptions =" ​​CenterAndExpand "' und 'HorizontalOptions =" ​​CenterAndExpand "'. –