2017-03-21 1 views
3

Je souhaite positionner un Stacklayout en bas sur une image en utilisant une mise en page relative en utilisant des formes Xamarin en utilisant uniquement xaml. Le xaml ressemble beaucoup à ceci.Xamarin forme une empilage de positionnement relatif en bas

<RelativeLayout> 
    <Image /> 
    <StackLayout Orientation="Horizontal"> 
     <Label Text="Dark Mode" /> 
     <Switch /> 
     <Label Text="Light Mode" /> 
    </StackLayout> 
</RelativeLayout> 

Quelles sont les contraintes X et Y doivent mon stackLayout avoir afin qu'il soit placé au-dessus de l'image et au bas de it.Also ajouté une image qui décrit le résultat que je pense.

attendu: RelativeLayout

J'ai essayé de donner RelativeLayout.XConstraints et RelativeLayout.YConstraints à la fois l'image et le stackLayout, mais pas en mesure de déterminer quelles sont les valeurs à utiliser pour obtenir le résultat souhaité.

+1

Vous pouvez utiliser 'Grid' au lieu de' RelativeLayout'. –

+0

@EgorGromadskiy Je ne déjà essayé cette approche, mais mon image ne tends pas à l'intérieur de la grille même si Aspect est réglé sur AspectFill. –

Répondre

2

Vous pouvez avoir un stackLayout sur l'image entière et une autre stackLayout qui sera placé au fond:

<RelativeLayout> 
    <Image Aspect="AspectFill" 
     RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width}" 
     RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height}"/> 
    <StackLayout 
     RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width}" 
     RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height}"> 
     <StackLayout Orientation="Horizontal" VerticalOptions="EndAndExpand" HorizontalOptions="Center"> 
      <Label Text="Dark Mode" /> 
      <Switch /> 
      <Label Text="Light Mode" /> 
     <StackLayout> 
    </StackLayout> 

+0

Cela fonctionne comme un charme. Merci !! –