我需要一个响应网格(单元格可以点击)的形式,什么控制应该使用
本文关键字:什么 控制 一个 响应 单元格 网格 | 更新日期: 2023-09-27 18:17:11
我需要在表单上显示一个网格,显示为32 × 32单元格,每个单元格可以单击来做一些操作(如windows日历应用程序)。我考虑过按钮和面板,但那将是1024个控件。有更好的办法吗?
下面是在WPF中创建带有按钮的响应式网格的方法:
使用GridLength(1, GridUnitType.Star)
MainWindow.xaml.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
for (int x = 0; x < 32; x++)
{
buttonGrid.ColumnDefinitions.Add(new ColumnDefinition
{
Width = new GridLength(1, GridUnitType.Star)
});
buttonGrid.RowDefinitions.Add(new RowDefinition
{
Height = new GridLength(1, GridUnitType.Star)
});
for (int y = 0; y < 32; y++)
{
var bt = new Button();
bt.Content = x + "" + y;
Grid.SetRow(bt, x);
Grid.SetColumn(bt, y);
buttonGrid.Children.Add(bt);
bt.Click += Bt_Click;
}
}
}
private void Bt_Click(object sender, RoutedEventArgs e)
{
Button bt = (Button)sender;
bt.Background = Brushes.Black;
}
}
MainWindow.xaml
<Grid Name="buttonGrid"></Grid>
请注意,调整大小将是相当缓慢的。