首页 > 解决方案 > 如何在网格元素 Xamarin 表单中将项目排成一行

问题描述

我在 Visual Studio 19 中使用 Xamarin Forms,我正在尝试将一些项目添加到 Grid 元素并将它们彼此相邻放置在一行中。我将它放在 ContentPage.Content 元素中。

我试过使用 Stacklayout,设置按钮的 Horizo​​ntaloptions(将它们全部设置为“开始”只会使它们重叠,设置一个开始一个到中心,一个到结束会起作用,但我想放置超过 3 个按钮临时网格工具栏。)。它告诉我,当我尝试为网格创建一些列定义时,我遇到了一个错误,说 contentpage 不支持直接内容。

这是我的列定义部分

        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="20*/>
            <ColumnDefinition Width="20*"/>
            <ColumnDefinition Width="20*"/>
            <ColumnDefinition Width="20*"/>
            <ColumnDefinition Width="20*"/>
        </Grid.ColumnDefinitions>

我正在以正常方式设置按钮的列。

                 <ContentPage.Content>
    <Grid  BackgroundColor="blue"
        HeightRequest="60"
                 VerticalOptions="End" >
        <ImageButton Source="alarm.png"
                HeightRequest="25"
                WidthRequest="25" 
                 HorizontalOptions="StartAndExpand"
                 />
        <ImageButton Source="alarm.png"
                HeightRequest="25"
                WidthRequest="25" 
                 HorizontalOptions="EndAndExpand"
                 />
    </Grid>                 
</ContentPage.Content>

my_current_unwanted_results

另外,如何删除灰色按钮背景?编辑 02/05/2020

要删除灰色背景方块,请设置 BackgroundColor="transparent"

标签: visual-studioxamlxamarinxamarin.forms

解决方案


似乎您忘记添加/每个ColumnDefinition.

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="2*"/>
    <ColumnDefinition Width="2*"/>
    <ColumnDefinition Width="2*"/>
    <ColumnDefinition Width="2*"/>
    <ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>

推荐阅读