Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xaml 获取图像以显示在网格中与文本相同的行上_Xaml_Xamarin_Xamarin.forms_Layout_Grid - Fatal编程技术网

Xaml 获取图像以显示在网格中与文本相同的行上

Xaml 获取图像以显示在网格中与文本相同的行上,xaml,xamarin,xamarin.forms,layout,grid,Xaml,Xamarin,Xamarin.forms,Layout,Grid,为什么下面的代码将图片和标签放在不同的行上…我希望它们都放在不同的列中的同一行上…因此保持标签水平排列…并将图像向下移动到相同的级别 期望的: Vodka 700ml Image 13.99 当前: 您实际上没有使用网格,而是使用堆栈布局 <Grid> <Grid.ColumnDefintions> <ColumnDefintion Width="25*" /> <ColumnDefintion Wi

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

期望的:

       Vodka
       700ml
Image  13.99
当前:


您实际上没有使用
网格
,而是使用
堆栈布局

<Grid>
  <Grid.ColumnDefintions>
    <ColumnDefintion Width="25*" />
    <ColumnDefintion Width="25*" />
    <ColumnDefintion Width="25*" />
    <ColumnDefintion Width="25*" />
  </Grid.ColumnDefintions>
  <Image Grid.Column="0" 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>

如果要实现上述布局,应将
网格
移动到
中,如:

<CarouselView.ItemTemplate>
        <DataTemplate>
            <Frame CornerRadius="30" Margin="20" BackgroundColor="Black" HeightRequest="500">
                <StackLayout>
                    <Grid RowSpacing="25">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <Image Grid.Column="0" Grid.Row="0" Grid.RowSpan="3"  Source="{Binding Img}" WidthRequest="100"  Aspect="AspectFit" HorizontalOptions="Start" VerticalOptions="End"/>
                        <Label Grid.Column="1" Grid.Row="0" Text="{Binding Name}" WidthRequest="100" BackgroundColor="Red" FontSize="Title" HorizontalOptions="End" VerticalOptions="End"/>
                        <Label Grid.Column="1" Grid.Row="1" Text="{Binding Des}" WidthRequest="100" BackgroundColor="Blue" FontSize="Title"  HorizontalOptions="End" VerticalOptions="End"/>
                        <Label Grid.Column="1" Grid.Row="2" Text="{Binding FullPrice, StringFormat='£{0:0.00}'}" WidthRequest="100" BackgroundColor="Pink" FontSize="Title" HorizontalOptions="End" VerticalOptions="End"/>
                    </Grid>
                </StackLayout>
            </Frame>
        </DataTemplate>
</CarouselView.ItemTemplate>


您的XAML中没有网格。Grid.Row和Grid.Column如果不使用Grid,则什么都不做。此外,您的标签都在同一行/列中,因此它们将彼此叠在一起抱歉,更新了缺少的代码…是的,我希望它们都水平对齐,所以它们不应该在同一行吗?>网格是整个页面的容器,不是转盘内内容的网格。您正在旋转木马中使用StackLayout,因此所有内容都彼此堆叠。标签都在同一行和同一列中,而不仅仅是同一行。Grid.Row和Grid.Column仅适用于作为网格的直接子元素的元素。下面是我的答案。它能工作吗?
<CarouselView.ItemTemplate>
        <DataTemplate>
            <Frame CornerRadius="30" Margin="20" BackgroundColor="Black" HeightRequest="500">
                <StackLayout>
                    <Grid RowSpacing="25">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <Image Grid.Column="0" Grid.Row="0" Grid.RowSpan="3"  Source="{Binding Img}" WidthRequest="100"  Aspect="AspectFit" HorizontalOptions="Start" VerticalOptions="End"/>
                        <Label Grid.Column="1" Grid.Row="0" Text="{Binding Name}" WidthRequest="100" BackgroundColor="Red" FontSize="Title" HorizontalOptions="End" VerticalOptions="End"/>
                        <Label Grid.Column="1" Grid.Row="1" Text="{Binding Des}" WidthRequest="100" BackgroundColor="Blue" FontSize="Title"  HorizontalOptions="End" VerticalOptions="End"/>
                        <Label Grid.Column="1" Grid.Row="2" Text="{Binding FullPrice, StringFormat='£{0:0.00}'}" WidthRequest="100" BackgroundColor="Pink" FontSize="Title" HorizontalOptions="End" VerticalOptions="End"/>
                    </Grid>
                </StackLayout>
            </Frame>
        </DataTemplate>
</CarouselView.ItemTemplate>