Xamarin 如何定位文本块,使其垂直居中1/3?

Xamarin 如何定位文本块,使其垂直居中1/3?,xamarin,xamarin.forms,xamarin.ios,xamarin.android,Xamarin,Xamarin.forms,Xamarin.ios,Xamarin.android,我有这个XAML,我目前正在使用,但这只是一个开始,因为我被困在如何做到这一点。我希望Msg1的文本在屏幕顶部居中1/3,在屏幕底部居中2/3,如下所示: ##################### <- # # # # 1/3 # # # ABC # <- # # # #

我有这个XAML,我目前正在使用,但这只是一个开始,因为我被困在如何做到这一点。我希望Msg1的文本在屏幕顶部居中1/3,在屏幕底部居中2/3,如下所示:

#####################  <-
#                   #
#                   #  1/3
#                   #
#       ABC         #  <-
#                   #
#                   #
#                   #
#                   #  2/3
#                   #
#                   #
#                   #
#                   #
#####################  <-

<Grid xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      xmlns:template="clr-namespace:Japanese.Templates" 
      x:Class="Japanese.Views.Phrases.Xaml.NoCards" 
      VerticalOptions="FillAndExpand" Padding="60" >  
    <Grid.RowDefinitions>
        <RowDefinition Height="50*" />
        <RowDefinition Height="50*" />
    </Grid.RowDefinitions>
    <Label Grid.Row="0" Text="{Binding Msg1}" 
           HorizontalTextAlignment="Center" 
           HorizontalOptions="Center"
           VerticalOptions="Center" />
</Grid>

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。实际上,你是这样做的:

<Grid xmlns="http://xamarin.com/schemas/2014/forms" 
  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
  xmlns:template="clr-namespace:Japanese.Templates" 
  x:Class="Japanese.Views.Phrases.Xaml.NoCards" 
  VerticalOptions="FillAndExpand" >  
<Grid.RowDefinitions>
    <RowDefinition Height="1*" />
    <RowDefinition Height="2*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Text="{Binding Msg1}" 
       XAlign="Center"
       HorizontalOptions="EndAndExpand"
       VerticalOptions="EndAndExpand" />
 </Grid>

这很容易,实际上您可以这样做:

<Grid xmlns="http://xamarin.com/schemas/2014/forms" 
  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
  xmlns:template="clr-namespace:Japanese.Templates" 
  x:Class="Japanese.Views.Phrases.Xaml.NoCards" 
  VerticalOptions="FillAndExpand" >  
<Grid.RowDefinitions>
    <RowDefinition Height="1*" />
    <RowDefinition Height="2*" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Text="{Binding Msg1}" 
       XAlign="Center"
       HorizontalOptions="EndAndExpand"
       VerticalOptions="EndAndExpand" />
 </Grid>

如@G.hakim所述或类似于下面所述更改网格定义,以便将网格划分为3个部分。首先,你可以达到你的要求

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

如@G.hakim所述或类似于下面所述更改网格定义,以便将网格划分为3个部分。首先,你可以达到你的要求

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