以下代码展示了如何使用 WPF Grid 控件实现字段之间添加一行一竖的格式内容:

public RowInfo()
{
    Panel = new Grid
    {
        Margin = thickness
    };
    Panel.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(30) });
    Panel.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(140) });
    Panel.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(140) });
    Panel.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(width) });
    Panel.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(width) });
    Panel.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(70) });
    Panel.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(70) });
    Panel.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(120) });
    Panel.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(width) });
    Panel.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(140) });
    Panel.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(100) });
    Panel.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(width) });
    Panel.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(50) });

    //序号
    var serialNumber = new TextBlock
    {
        Margin = thickness,
        VerticalAlignment = VerticalAlignment.Center
    };
    Panel.Children.Add(serialNumber);
    Grid.SetColumn(serialNumber, 0);

    //开始日期
    var startDate = new DatePicker
    {
        Margin = thickness,
        VerticalAlignment = VerticalAlignment.Center,
        Name = 'startDate'
    };
    Panel.Children.Add(startDate);
    Grid.SetColumn(startDate, 1);

    //结束日期
    var endDate = new DatePicker
    {
        Margin = thickness,
        VerticalAlignment = VerticalAlignment.Center,
        Name = 'endDate'
    };
    Panel.Children.Add(endDate);
    Grid.SetColumn(endDate, 2);

    //电源设备
    var PowerSupplyEquipment = new ComboBox
    {
        Margin = thickness,
        VerticalAlignment = VerticalAlignment.Center,
        ItemsSource = new[] { '光源1', '光源2', '光源3', '光源4', '光源5', '光源6', '光源7', '光源8', '光源9', '光源10', '光源11', '光源12', '光源13', '光源14', '光源15', '光源16', '光源17', '光源18', '光源19', '光源20' },
        Name = 'PowerSupplyEquipment'
    };
    Panel.Children.Add(PowerSupplyEquipment);
    Grid.SetColumn(PowerSupplyEquipment, 3);

    //端口号
    var port = new ComboBox
    {
        Margin = thickness,
        VerticalAlignment = VerticalAlignment.Center,
        Name = 'port'
    };
    port.PreviewMouseLeftButtonDown += CurrentTextBox_PreviewMouseLeftButtonDown;
    Panel.Children.Add(port);
    Grid.SetColumn(port, 4);

    //电流
    var current = new TextBox
    {
        Margin = thickness,
        VerticalAlignment = VerticalAlignment.Center,
        HorizontalContentAlignment = HorizontalAlignment.Center,
        Name = 'current'
    };
    Panel.Children.Add(current);
    Grid.SetColumn(current, 5);

    //电压
    var voltage = new TextBox
    {
        Margin = thickness,
        VerticalAlignment = VerticalAlignment.Center,
        HorizontalContentAlignment = HorizontalAlignment.Center,
        Name = 'voltage'
    };
    Panel.Children.Add(voltage);
    Grid.SetColumn(voltage, 6);

    //泵异常温度
    var pumpAbnormalTemperature = new TextBox
    {
        Margin = thickness,
        VerticalAlignment = VerticalAlignment.Center,
        HorizontalContentAlignment = HorizontalAlignment.Center,
        Name = 'pumpAbnormalTemperature'
    };
    Panel.Children.Add(pumpAbnormalTemperature);
    Grid.SetColumn(pumpAbnormalTemperature, 7);

    //泵温度
    var pumpTemperature = new TextBox
    {
        Margin = thickness,
        VerticalAlignment = VerticalAlignment.Center,
        HorizontalContentAlignment = HorizontalAlignment.Center,
        Name = 'pumpTemperature'
    };
    Panel.Children.Add(pumpTemperature);
    Grid.SetColumn(pumpTemperature, 8);

    //功率异常值
    var powerAbnormalValue = new TextBox
    {
        Margin = thickness,
        VerticalAlignment = VerticalAlignment.Center,
        HorizontalContentAlignment = HorizontalAlignment.Center,
        Name = 'powerAbnormalValue'
    };
    Panel.Children.Add(powerAbnormalValue);
    Grid.SetColumn(powerAbnormalValue, 9);

    //功率值
    var powerValue = new TextBox
    {
        Margin = thickness,
        VerticalAlignment = VerticalAlignment.Center,
        HorizontalContentAlignment = HorizontalAlignment.Center,
        Name = 'powerValue'
    };
    Panel.Children.Add(powerValue);
    Grid.SetColumn(powerValue, 10);

    //开关
    var switchButton = new Button
    {
        Content = '开',
        Margin = thickness,
        VerticalAlignment = VerticalAlignment.Center,
        HorizontalContentAlignment = HorizontalAlignment.Center,
        Style = (Style)FindResource('butt')
    };
    switchButton.Click += SwitchButton_Click;
    Panel.Children.Add(switchButton);
    Grid.SetColumn(switchButton, 11);

    //开光图片
    var image = new Image
    {
        Source = new BitmapImage(new Uri('pack://application:,,,/img/led_gray.png')),
        Width = 30,
        Height = 30
    };
    image.Name = 'isImg';
    Panel.Children.Add(image);
    Grid.SetColumn(image, 12);
}

代码中,每个字段之间添加一行一竖的格式内容:是通过 Grid 控件的 ColumnDefinitions 属性来实现的。每个字段都被添加到 Grid 控件中,并通过 Grid.SetColumn 方法设置它们在 Grid 中的列数。每个字段的列数都不同,因此需要在 Grid 控件的 ColumnDefinitions 属性中添加对应数量的 ColumnDefinition 对象,来指定每一列的宽度。这样就可以实现每个字段之间添加一行一竖的格式。

WPF Grid 控件实现字段排列:一行一竖格式

原文地址: https://www.cveoy.top/t/topic/j7Fd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录