ColumnSpan 在 Xamarin 窗体中的奇怪行为



我有一个内容视图,里面定义了网格。网格有三行和两列。我有一个图像应该覆盖第一行中的两列,即列跨度 = 2,但将列跨度设置为 2 并不能覆盖整个区域,将其设置为 3 即可完成这项工作。是因为我创建网格的方式有任何错误吗?下面是整个内容视图。

<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    x:Class="GridView.HomeSliderComponent">
    <ContentView.Content>
        <Grid BackgroundColor="Black">
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <Image Source="{Binding Cover}" Aspect="AspectFill" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3"/>
            <Label Text="{Binding Title}" Grid.Row="1" Grid.Column="0" Margin="10,0,0,0" VerticalOptions="Center"/>
            <Label Text="{Binding Description}" Grid.Row="2" Grid.Column="0" VerticalOptions="Center" Margin="10,0,0,0"/>
            <Button Text="Resume Course" TextColor="#EBB53E" Grid.Row="2" Grid.Column="2" VerticalOptions="End" HorizontalOptions="End" Margin="5,5" BackgroundColor="Black" BorderColor="#EBB53E" BorderRadius="2" BorderWidth="2"/>
        </Grid>
    </ContentView.Content>
</ContentView>

问题是,您的Button具有Grid.Column="2",这隐式创建了第三列。因此,您的网格有 3 列,您需要Grid.ColumnSpan="3"才能在整个宽度上跨越Image

最新更新