WPF 中使用 Grid 控件创建表格格式界面
以下代码使用 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 控件,并添加了多个 ColumnDefinition,分别设置了每个字段的宽度。然后依次添加了每个字段的控件,使用 Grid.SetColumn 方法将其放置在对应的列中。最后得到的结果就是一个带有表格格式的界面,每个字段都对齐排列。
代码说明:
Panel.ColumnDefinitions用于定义Grid控件的列。Grid.SetColumn方法用于将控件放置在指定的列中。
总结:
使用 Grid 控件可以方便地创建表格格式界面,并且可以根据需要设置每个字段的宽度和对齐方式。
原文地址: https://www.cveoy.top/t/topic/j7Fi 著作权归作者所有。请勿转载和采集!