2015-05-24 7 views
8

Mam następujący kod:Xamarin Forms: prośba wysokość obrazu ignorowane wewnątrz ramki wewnątrz względnym układzie

<ScrollView Orientation="Vertical" Padding="0" VerticalOptions="FillAndExpand"> 
       <StackLayout Spacing="0" Padding="15,0"> 
        <Frame HasShadow="false" BackgroundColor="Transparent" Padding="0"> 
         <RelativeLayout BackgroundColor="Olive" Padding="0" VerticalOptions="End"> 
          <Frame HeightRequest="100" WidthRequest="100" BackgroundColor="Purple" Padding="0" HasShadow="false"> 
           <Image HeightRequest="50" WidthRequest="50" Source="assets/avatar-man.png"></Image> 
          </Frame> 
          <BoxView HeightRequest="100" BackgroundColor="Teal" RelativeLayout.XConstraint="{ConstraintExpression Type=Constant, Constant=100}" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant=-100}" /> 
          <Frame BackgroundColor="Transparent" HasShadow="false" Padding="0" RelativeLayout.XConstraint="{ConstraintExpression Type=Constant, Constant=100}" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1, Constant=-100}"> 
           <Label>Hello</Label> 
          </Frame> 
         </RelativeLayout> 
        </Frame> 
       </StackLayout> 
      </ScrollView> 

Jednak z jakiegoś powodu żądanie wysokość Obraz zostanie zignorowany i zamiast pokazywania kwadrat 50x50 jednostkową, wypełnia cały ekran tak:

Issue Image

Czy ktoś wie dlaczego ta zostanie zignorowany i jak to naprawić?

Odpowiedz

13

miałem ten sam problem, skończyło się owijając StackLayout wokół mojego obrazu tak:

<StackLayout> 
    <Image Source="{Binding MyImage}" WidthRequest="50" HeightRequest="50"/> 
</StackLayout> 
0

ja zwykle po prostu ustawić Margin na obrazie, tak:

<Frame HeightRequest="100" WidthRequest="100" BackgroundColor="Purple" Padding="0" HasShadow="false"> 
    <Image Margin="25" VerticalOptions="Center" Source="assets/avatar-man.png"></Image> 
</Frame> 

Wystarczy weź rozmiar (wysokość lub szerokość) Frame, odejmij rozmiar Image i podziel przez 2. Ustawi rozmiar obrazu na 50.

Łatwy sposób, aby to zrobić, jeśli rozmiar ramki nie ulegnie zmianie.

Powiązane problemy