我需要一个响应网格(单元格可以点击)的形式,什么控制应该使用

本文关键字:什么 控制 一个 响应 单元格 网格 | 更新日期: 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>

请注意,调整大小将是相当缓慢的。