使图像与GRID中的文本显示在同一行上

问题描述 投票:0回答:1

为什么下面的代码将图片和标签放在不同的行上...我希望它们都在同一行的不同列中...因此将标签保持在水平位置...并移动图像下降到同一水平

所需:

       Vodka
       700ml
Image  13.99

当前:enter image description here

 <Grid RowSpacing="25">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>

        <CarouselView ItemsSource="{Binding OffersList}" PeekAreaInsets="20">
            <CarouselView.ItemsLayout>
                <LinearItemsLayout Orientation="Horizontal" ItemSpacing="10"/>
            </CarouselView.ItemsLayout>
            <CarouselView.ItemTemplate>
                <DataTemplate>
                    <Frame CornerRadius="30" Margin="20" BackgroundColor="Black" HeightRequest="500">
                        <StackLayout>
                            <Image Grid.Column="1" Grid.Row="1"  Source="{Binding Img}" WidthRequest="100" HeightRequest="100" Aspect="AspectFit" HorizontalOptions="Start"/>
                            <Label Grid.Column="2" Grid.Row="1" Text="{Binding Name}" WidthRequest="100" BackgroundColor="Red" FontSize="Title" HorizontalOptions="End"/>
                            <Label Grid.Column="2" Grid.Row="1" Text="{Binding Des}" WidthRequest="100" BackgroundColor="Blue" FontSize="Title"  HorizontalOptions="End" />
                            <Label Grid.Column="2" Grid.Row="1" Text="{Binding FullPrice, StringFormat='£{0:0.00}'}" WidthRequest="100" BackgroundColor="Pink" FontSize="Title" HorizontalOptions="End"/>
                        </StackLayout>
                    </Frame>
                </DataTemplate>
            </CarouselView.ItemTemplate>
        </CarouselView>
xaml xamarin xamarin.forms layout grid
1个回答
0
投票

您实际上不是在使用Grid,而是在使用StackLayout

<Grid>
  <Grid.ColumnDefintions>
    <ColumnDefintion Width="25*" />
    <ColumnDefintion Width="25*" />
    <ColumnDefintion Width="25*" />
    <ColumnDefintion Width="25*" />
  </Grid.ColumnDefintions>
  <Image Grid.Column="1" Grid.Row="0"  Source="{Binding Img}" WidthRequest="100" HeightRequest="100" Aspect="AspectFit" HorizontalOptions="Start"/>
  <Label Grid.Column="1" Grid.Row="0" Text="{Binding Name}" WidthRequest="100" BackgroundColor="Red" FontSize="Title" HorizontalOptions="End"/>
  <Label Grid.Column="2" Grid.Row="0" Text="{Binding Des}" WidthRequest="100" BackgroundColor="Blue" FontSize="Title"  HorizontalOptions="End" />
  <Label Grid.Column="3" Grid.Row="0" Text="{Binding FullPrice, StringFormat='£{0:0.00}'}" WidthRequest="100" BackgroundColor="Pink" FontSize="Title" HorizontalOptions="End"/>
</Grid>
© www.soinside.com 2019 - 2024. All rights reserved.