首页 > 解决方案 > 如何制作可自定义大小的方形网格按钮?Xamarin 表单

问题描述

有人知道如何制作可自定义大小的方形按钮网格吗?我想这样做,这样我就可以更改正方形上按钮数组的大小。我一直在尝试以某种方式在列表视图中创建一个列表视图,但这似乎不起作用。有没有人有另一种方法来解决这个问题? 我想做什么,但自定义大小,因为现在我只使用了 5 个不同的列表视图,每列一个

以下是我迄今为止在列表视图中使用列表视图尝试过的内容

<ListView ItemsSource="{Binding Buttons}" Rotation="270">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ListView ItemsSource="{Binding Columns}">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <ViewCell>
                                    <StackLayout>
                                        <Button BackgroundColor="{Binding Color}" CornerRadius="5" WidthRequest="38" HeightRequest="38" Clicked="Button_Clicked"/>
                                    </StackLayout>
                                </ViewCell>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

标签: c#xamarin

解决方案


就像杰森说的,你可以使用网格而不是列表视图。

     <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="0.2*" />
            <ColumnDefinition Width="0.2*" />
            <ColumnDefinition Width="0.2*" />
            <ColumnDefinition Width="0.2*" />
            <ColumnDefinition Width="0.2*" />
        </Grid.ColumnDefinitions>
        <Button
            x:Name="btn1"
            Grid.Row="0"
            Grid.Column="0"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn2"
            Grid.Row="0"
            Grid.Column="1"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn3"
            Grid.Row="0"
            Grid.Column="2"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn4"
            Grid.Row="0"
            Grid.Column="3"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn5"
            Grid.Row="0"
            Grid.Column="4"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn6"
            Grid.Row="1"
            Grid.Column="0"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn7"
            Grid.Row="1"
            Grid.Column="1"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn8"
            Grid.Row="1"
            Grid.Column="2"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn9"
            Grid.Row="1"
            Grid.Column="3"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn10"
            Grid.Row="1"
            Grid.Column="4"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn11"
            Grid.Row="2"
            Grid.Column="0"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn12"
            Grid.Row="2"
            Grid.Column="1"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn13"
            Grid.Row="2"
            Grid.Column="2"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn14"
            Grid.Row="2"
            Grid.Column="3"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn15"
            Grid.Row="2"
            Grid.Column="4"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn16"
            Grid.Row="3"
            Grid.Column="0"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn17"
            Grid.Row="3"
            Grid.Column="1"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn18"
            Grid.Row="3"
            Grid.Column="2"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn19"
            Grid.Row="3"
            Grid.Column="3"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn20"
            Grid.Row="3"
            Grid.Column="4"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn21"
            Grid.Row="4"
            Grid.Column="0"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn22"
            Grid.Row="4"
            Grid.Column="1"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn23"
            Grid.Row="4"
            Grid.Column="2"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn24"
            Grid.Row="4"
            Grid.Column="3"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />
        <Button
            x:Name="btn25"
            Grid.Row="4"
            Grid.Column="4"
            HeightRequest="{Binding Width, Source={x:Reference btn1}}" />

        <Grid />
    </Grid>

在此处输入图像描述


推荐阅读