以下代码展示了如何使用 WPF 控件定义和布局一个数据行,每个字段之间用 Border 添加一行一竖的格式。代码中只展示了每个字段的定义和添加到 Grid 中的代码。其中包括日期选择器、下拉框、文本框、按钮和图片等控件,用于实现对光源设备的控制和监测。同时,每个控件都设置了相应的属性,如 Margin、VerticalAlignment、Name 等,以及事件处理函数,如 Click、PreviewMouseLeftButtonDown 等,用于实现相应的功能。最终,这些控件被添加到一个 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);  
}  

以上代码展示了一个数据行的控件定义和布局示例,您可以根据您的需求进行调整和扩展。

WPF 数据行控件定义及布局示例

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

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