2017-08-29 7 views
0

Ich arbeite mit Xamarin Formen Und ich brauche ein Layout mit zwei Objekte erstellen beliebig positionieren wie folgt aus:Hälfte eines Bildes über andere Bild in Xamarin bildet

enter image description here

Hälfte eines (Kreis) oben das andere Objekt (Quadrat)

ich habe gesucht und es scheint ich relativ Layout ... ich habe versucht zu tun, dass die beiden Objekte in der gleichen Raster-Einstellung (Zeile und Zeile 0), und dann verwenden müssen, verwenden constraintX, um die zweite in demselben Y mit Faktor 0 und einer negativen Konstante zu setzen ... Aber das tat es nicht Arbeit. Das a hat die Zeilen gelöscht und kann hier leider nicht angezeigt werden ... das Einzige, was dabei passiert ist: Die beiden waren in der gleichen Position in y, aber ich könnte das obige Bild machen ... Kann jemand helfen Ich mit einem Beispiel, Idee oder irgendetwas? vielen Dank!

Mein Code jetzt - das Rodape Bild ist das Quadrat und das Nachladen ist der Kreis Ich jetzt die Tatsache, dass das Nachladen ist unter dem Quadrat ist falsch, aber für den Moment, es ist das visuelle vortäuschen ... ein es ein Ergebnis der Nähe gibt mir, was ich will ... aber genau so etwas wie dieses nicht

<!--Rodapé Grid--> 
<RelativeLayout HorizontalOptions="FillAndExpand" 
       VerticalOptions="EndAndExpand" 
       BackgroundColor="Black"> 
    <Grid BackgroundColor="Red" 
      RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, 
                   Property=Width, 
                   Factor=1, 
                   Constant=0}"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 

     <Image Source="rodape.png" 
       Aspect="Fill" 
       HorizontalOptions="FillAndExpand" 
       Grid.Row="0" 
       Grid.Column="0"> 
      <Image.GestureRecognizers> 
       <TapGestureRecognizer Tapped="FranqueadoOnTapGestureRecognizerTapped"/> 
      </Image.GestureRecognizers> 
     </Image> 
     <!--Escrito Rodapé--> 
     <StackLayout Orientation="Vertical" 
        VerticalOptions="End" 
        HorizontalOptions="FillAndExpand" 
        Grid.Row="0" 
        Spacing="0" 
        Grid.Column="0"> 
      <Image Source="reloadicon.png"/> 
      <StackLayout Orientation="Horizontal" 
         HorizontalOptions="Center"> 
       <local:MyLabel NamedFontSize="Medium" 
           FontSizeFactor="0.7" 
           Text="Seja um Franqueado:" 
           TextColor="White" 
           FontAttributes="Bold" 
           Style="{StaticResource labelsfont}"/> 
       <local:MyLabel NamedFontSize="Medium" 
           FontSizeFactor="0.7" Text="montanaexpress.com" 
           Style="{StaticResource labelsfont}" 
           TextColor="{StaticResource laranjacolor}"/>    
      </StackLayout> 
     </StackLayout> 
    </Grid> 
</RelativeLayout> 
+0

Nicht 100% sicher, was hier gefragt wird, aber wenn Sie einen Kreis über ein Quadrat zeichnen müssen, ist dies eine gute Option für ein benutzerdefiniertes Steuerelement, wo Sie direkt auf native Leinwände zeichnen – snowCrabs

Antwort

3

Versuchen Sie, ich denke, es ist einfacher:

<Grid> 
    <BoxView Grid.Column="0" Grid.Row="1" 
      Color="Red" 
      HeightRequest="20" 
      HorizontalOptions="FillAndExpand"/> 
    <Frame Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" 
      BackgroundColor="Yellow" 
      HorizontalOptions="CenterAndExpand" 
      VerticalOptions="CenterAndExpand" 
      WidthRequest="40" 
      HeightRequest="40" 
      CornerRadius="40" 
      Margin="0,5,0,10"/> 
</Grid> 

Was Sie erhalten: enter image description here

+0

Aber wenn ich Höhe und Breite Anfrage verwende ich ein statische Größe für mich, oder? –

+0

Ja, ich habe es verwendet, um Ihr visuelles Modell zu realisieren. Sie müssen die BoxView- und Frame-Elemente in Ihre Bilder ändern. Foget über die festen Größen und verwenden Sie die Positionsattribute wie Horizontal und VerticalOptions, Grid.Column, Row und RowSpan. Sag mir, ob es mit deinen Bildern so funktioniert, wie du es willst –

Verwandte Themen