c# - 如何制作可自定义大小的方形网格按钮?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>
解决方案
就像杰森说的,你可以使用网格而不是列表视图。
<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>
推荐阅读
- python - Pandas:在 MultiIndex 数据框中的每个索引之后添加一个空行
- swift - 切换选项卡时删除所有子视图控制器并快速移动到父视图控制器
- android - 任务':android_intent:compileDebugJavaWithJavac'的Flutter执行失败
- c# - .net Core 模型的依赖注入
- node.js - JOSE 错误 [ERR_PACKAGE_PATH_NOT_EXPORTED]
- ruby-on-rails - ror 我如何订购有很多价值
- sql - 合并两个年表
- android-studio - 在 androidstudio 4.1.1 中更新 LLDB
- node.js - angular 和 nodejs 的 cors 问题(已解决)
- mongodb - 无法保存到MongoDB:java.lang.ClassNotFoundException:com.mongodb.hadoop.io.BSONWritable