Rikisan
@Rikisan
техник-программист

Как выравнять таблицу в xamarin?

Как выравнять таблицу по содержимому чтобы она не растягивалась на весь экран? Пытаюсь сделать плитку и никак не могу разобраться с этим. Помогите пожалуйста новечку.
<ContentPage.Content>
        <Grid VerticalOptions="Start">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Image Source="But1.jpg" Grid.Row="0" Grid.Column="0" VerticalOptions="Start" HorizontalOptions="FillAndExpand"/>
            <Image Source="But2.jpg" Grid.Row="0" Grid.Column="1" VerticalOptions="Start" HorizontalOptions="FillAndExpand"/>
            <Image Source="But3.jpg" Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" Grid.RowSpan="2" VerticalOptions="Start" BackgroundColor="Lime"/>
            <Image Source="But4.jpg" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" VerticalOptions="Start"/>
        </Grid>
    </ContentPage.Content>

Скриншот что получилось
5b47a86dc0d70041043236.png
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
wcoder
@wcoder
Cross-platform developer
Обратите внимание на размеры изображений и когда grid узнает о них

Если размеры заданы, все отрабатывает корректно:
<Grid VerticalOptions="Start">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    
    <BoxView 
        Grid.Row="0"
        Grid.Column="0"
        VerticalOptions="Start"
        HeightRequest="100"
        HorizontalOptions="FillAndExpand"
        BackgroundColor="Lime" />
    <BoxView
        Grid.Row="0"
        Grid.Column="1"
        HeightRequest="100"
        VerticalOptions="Start"
        HorizontalOptions="FillAndExpand"
        BackgroundColor="Red" />
    <BoxView
        Grid.Row="0"
        Grid.Column="2"
        Grid.ColumnSpan="2"
        Grid.RowSpan="2"
        HeightRequest="206" 
        VerticalOptions="Start"
        BackgroundColor="Yellow"/>
    <!-- 206 = 2xHeight + 6 (Grid RowSpacing) -->
    <BoxView
        Grid.Row="1"
        Grid.Column="0"
        HeightRequest="100"
        Grid.ColumnSpan="2"
        VerticalOptions="Start"
        BackgroundColor="Blue" />
</Grid>

Результат
5b47adf85eceb527090128.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы