WPF Grid 控件实现字段排列:一行一竖格式
以下代码展示了如何使用 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 对象,来指定每一列的宽度。这样就可以实现每个字段之间添加一行一竖的格式。
原文地址: https://www.cveoy.top/t/topic/j7Fd 著作权归作者所有。请勿转载和采集!