Xamarin Forms比屏幕中心略高

时间:2018-05-18 12:10:37

标签: c# forms xaml xamarin

我正在开发类似Uber应用程序的东西(Pin在屏幕上居中,地图只能移动,引脚始终位于中心)。

我创建了一个Grid,其中包含一个Image和一个Xamarin.Forms.Map,我将图像水平和垂直设置为居中,并将地图水平和垂直填充为可用空间。这是不对的,因为针脚的底部不适合地图的确切中心。 如何画一点上部,然后是屏幕的垂直中心?看截图: Move up

确实需要充满活力。

  <Grid>
    <maps:Map x:Name="DisplayMap" IsShowingUser="true" MapType="Street" HorizontalOptions="Fill" VerticalOptions="Fill"/>
    <StackLayout HorizontalOptions="Center" VerticalOptions="Center">
            <!-- SOME OTHER CONTROLS -->
            <Image Source="pin.png" WidthRequest="50" HeightRequest="50"/>
    <StackLayout HorizontalOptions="Center" VerticalOptions="Center">
  </Grid>

2 个答案:

答案 0 :(得分:0)

如果你将“其他一些控件”设置到stackLayout中,那么stackLayout将会居中,但不会再显示你的图像了...

尝试这样的事情(从stackLayout中排除图像):

my app configure to be build with webpack instead of ng-cli

你的'pin'形象:

  • 将居中
  • 将位于其他控件之上

现在应该可以工作......

答案 1 :(得分:0)

  <Grid>
   <Grid
     HorizontalOptions="Fill" 
     VerticalOptions="Fill">
    <Grid.RowDefinitions>
     <RowDefinition Height="*"/>
     <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Image 
       Grid.Row="0"
       Source="pin.png" 
       WidthRequest="50" 
       HeightRequest="50"
       VerticalOptions="End"
       HorizontalOptions="Center"/>

  </Grid>
  <maps:Map 
    x:Name="DisplayMap" 
    IsShowingUser="true" 
    MapType="Street" 
    HorizontalOptions="Fill" 
    VerticalOptions="Fill"/>
 </Grid>

这会将整个屏幕水平分成两部分,图像将与第一行的底部对齐。