使用Xamarin.form Xaml的AbsoluteLayout.LayoutBounds位置

Poo*_*wat 5 layout xaml xamarin xamarin.forms

在Xamarin.form Xaml中:当我给AbsoulteLayout layoutBounds(.5,.5,.5,.5)时,它居中出现,但不适用于ios ...,如果我使用(.75,.75 ,. 5,.5)Xamarin形式的Xaml页中的ios中心不是android系统.....如何为ios和android具有相同的layoutBounds

给定示例:

<AbsoluteLayout BackgroundColor="#99000000"
                    HorizontalOptions="FillAndExpand"                   
                    IsVisible="{Binding xyz}"
                    VerticalOptions="FillAndExpand">

      <AbsoluteLayout x:Name="xyz"
                     AbsoluteLayout.LayoutBounds="0.5, 0.5, 0.5, 0.5"
                     AbsoluteLayout.LayoutFlags="All"
                       BackgroundColor="Transparent"
                       HorizontalOptions="CenterAndExpand"
                       VerticalOptions="CenterAndExpand" />
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud)

Poo*_*wat 5

感谢您的答复。我已经解决了绝对布局中与中心对齐有关的问题,希望这对您有所帮助

    <AbsoluteLayout Padding="0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"    IsVisible="{Binding ShowPopup}">
        <BoxView Color="#99000000" AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All" />
        <StackLayout x:Name="Popup" Padding="6" Orientation="Horizontal" BackgroundColor="Transparent" AbsoluteLayout.LayoutBounds="0.5, 0.5, -1, -1" AbsoluteLayout.LayoutFlags="PositionProportional">
        </StackLayout>
    </AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud)


Roh*_*ews 3

您可以使用OnPlatform在不同平台上具有不同的值。

例如:

<ContentPage.Padding>
    <OnPlatform x:TypeArguments="Thickness">
      <OnPlatform.iOS>
        0, 20, 0, 0
      </OnPlatform.iOS>
      <OnPlatform.Android>
        0, 0, 0, 0
      </OnPlatform.Android>
      <OnPlatform.WinPhone>
        0, 0, 0, 0
      </OnPlatform.WinPhone>
    </OnPlatform>
  </ContentPage.Padding>
Run Code Online (Sandbox Code Playgroud)

修改您的代码(未经测试):

<AbsoluteLayout BackgroundColor="#99000000"
                    HorizontalOptions="FillAndExpand"                   
                    IsVisible="{Binding xyz}"
                    VerticalOptions="FillAndExpand">

      <AbsoluteLayout x:Name="xyz"                     
                       AbsoluteLayout.LayoutFlags="All"
                       BackgroundColor="Transparent"
                       HorizontalOptions="CenterAndExpand"
                       VerticalOptions="CenterAndExpand" >
            <AbsoluteLayout.LayoutBounds>
                     <OnPlatform x:TypeArguments="Rectangle">
                        <OnPlatform.iOS>
                              0.75, 0.75, 0.5, 0.5
                        </OnPlatform.iOS>
                        <OnPlatform.Android>
                              0.5, 0.5, 0.5, 0.5
                        </OnPlatform.Android>
                        <OnPlatform.WinPhone>
                              0, 0, 0, 0
                        </OnPlatform.WinPhone>
                     </OnPlatform>
            </AbsoluteLayout.LayoutBounds>
      </AbsoluteLayout>
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud)