Files
HeadgearViewingRange3M/Views/ParameterWindow.xaml

280 lines
17 KiB
Plaintext
Raw Permalink Normal View History

2026-04-01 20:33:23 +08:00
<Window x:Class="MembranePoreTester.ParameterWindow"
2026-03-25 21:34:41 +08:00
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MembranePoreTester"
2026-04-01 20:29:45 +08:00
Title="智能设备控制平台"
Width="1024" MinHeight="768" WindowState="Maximized"
2026-03-25 21:34:41 +08:00
WindowStartupLocation="CenterScreen"
2026-04-01 20:29:45 +08:00
ResizeMode="CanResize"
Background="#F5F7FA" FontFamily="Segoe UI">
<Window.Resources>
<!-- 统一按钮样式 -->
<Style TargetType="Button">
<Setter Property="Background" Value="#2196F3"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="12,6"/>
<Setter Property="Margin" Value="5"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="4" Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#1976D2"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#0D47A1"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 统一文本框样式 -->
<Style TargetType="TextBox">
<Setter Property="Height" Value="28"/>
<Setter Property="Margin" Value="5"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="#D0D3D9"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="5,2"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<!-- 统一标签样式 -->
<Style TargetType="Label">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="Foreground" Value="#2C3E50"/>
<Setter Property="Margin" Value="5,5,5,5"/>
</Style>
<!-- 统一GroupBox样式 -->
<Style TargetType="GroupBox">
<Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="#E9ECF0"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Margin" Value="0,0,0,12"/>
<Setter Property="Padding" Value="12"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="6">
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{TemplateBinding Header}" FontWeight="SemiBold" FontSize="14" Margin="0,0,0,12"/>
<ContentPresenter Grid.Row="1" Content="{TemplateBinding Content}"/>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
2026-03-25 21:34:41 +08:00
<Grid Margin="12">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
2026-04-01 20:29:45 +08:00
<!-- 标题栏 -->
<Border Grid.Row="0" Background="#2196F3" CornerRadius="6" Padding="12" Margin="0,0,0,12">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<TextBlock Text="智能设备控制平台" FontSize="24" FontWeight="Bold" Foreground="White"/>
<TextBlock Text="v1.0" FontSize="14" Foreground="#E3F2FD" VerticalAlignment="Bottom" Margin="10,0,0,5"/>
</StackPanel>
</Border>
2026-03-25 21:34:41 +08:00
<!-- 主要内容区 -->
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
2026-04-01 20:29:45 +08:00
<ColumnDefinition Width="2.5*"/>
2026-03-25 21:34:41 +08:00
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- 左侧参数区 -->
2026-04-01 20:29:45 +08:00
<ScrollViewer Grid.Column="0" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
2026-03-25 21:34:41 +08:00
<StackPanel Margin="0,0,12,0">
<!-- 灯条数据组 -->
2026-04-01 20:29:45 +08:00
<GroupBox Header="📊 灯条数据">
2026-03-25 21:34:41 +08:00
<Grid>
<Grid.ColumnDefinitions>
2026-04-01 20:29:45 +08:00
<ColumnDefinition Width="Auto"/>
2026-03-25 21:34:41 +08:00
<ColumnDefinition Width="*"/>
2026-04-01 20:29:45 +08:00
<ColumnDefinition Width="Auto"/>
2026-03-25 21:34:41 +08:00
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
2026-04-01 20:29:45 +08:00
<!-- 第1行 -->
2026-03-25 21:34:41 +08:00
<Label Grid.Row="0" Grid.Column="0" Content="上灯条数据1"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtUpperLampData1" Grid.Row="0" Grid.Column="1" Text="{Binding UpperLampData1, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
<Label Grid.Row="0" Grid.Column="2" Content="上灯条数据4"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtUpperLampData4" Grid.Row="0" Grid.Column="3" Text="{Binding UpperLampData4, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
2026-04-01 20:29:45 +08:00
<!-- 第2行 -->
<Label Grid.Row="1" Grid.Column="0" Content="下灯条数据1"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Grid.Row="1" Name="txtLowerLampData1" Grid.Column="1" Text="{Binding LowerLampData1, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
<Label Grid.Row="1" Grid.Column="2" Content="下灯条数据4"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Grid.Row="1" Name="txtLowerLampData4" Grid.Column="3" Text="{Binding LowerLampData4, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
2026-04-01 20:29:45 +08:00
<!-- 第3行 -->
<Label Grid.Row="2" Grid.Column="0" Content="上灯条数据2"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtUpperLampData2" Grid.Row="2" Grid.Column="1" Text="{Binding UpperLampData2, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
<Label Grid.Row="2" Grid.Column="2" Content="上灯条数据5"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtUpperLampData5" Grid.Row="2" Grid.Column="3" Text="{Binding UpperLampData5, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
2026-04-01 20:29:45 +08:00
<!-- 第4行 -->
<Label Grid.Row="3" Grid.Column="0" Content="下灯条数据2"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Grid.Row="3" Name="txtLowerLampData2" Grid.Column="1" Text="{Binding LowerLampData2, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
<Label Grid.Row="3" Grid.Column="2" Content="下灯条数据5"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtLowerLampData5" Grid.Row="3" Grid.Column="3" Text="{Binding LowerLampData5, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
2026-04-01 20:29:45 +08:00
<!-- 第5行 -->
<Label Grid.Row="4" Grid.Column="0" Content="上灯条数据3"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtUpperLampData3" Grid.Row="4" Grid.Column="1" Text="{Binding UpperLampData3, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
<Label Grid.Row="4" Grid.Column="2" Content="上灯条数据6"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtUpperLampData6" Grid.Row="4" Grid.Column="3" Text="{Binding UpperLampData6, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
2026-04-01 20:29:45 +08:00
<!-- 第6行 -->
<Label Grid.Row="5" Grid.Column="0" Content="下灯条数据3"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Grid.Row="5" Name="txtLowerLampData3" Grid.Column="1" Text="{Binding LowerLampData3, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
<Label Grid.Row="5" Grid.Column="2" Content="下灯条数据6"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtLowerLampData6" Grid.Row="5" Grid.Column="3" Text="{Binding LowerLampData6, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
</Grid>
</GroupBox>
2026-04-01 20:29:45 +08:00
<!-- 面积系数与保存率矫正系数 -->
<GroupBox Header="📐 面积系数">
2026-03-25 21:34:41 +08:00
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Content="左眼面积系数"/>
2026-04-01 21:30:13 +08:00
<TextBox x:Name="txtLeftEyeAreaCoeff" Grid.Row="0" Grid.Column="1" Text="{Binding LeftEyeAreaCoeff, UpdateSourceTrigger=LostFocus}" Width="120"/>
2026-03-25 21:34:41 +08:00
<Label Grid.Row="1" Grid.Column="0" Content="右眼面积系数"/>
2026-04-01 21:30:13 +08:00
<TextBox x:Name="txtRightEyeAreaCoeff" Grid.Row="1" Grid.Column="1" Text="{Binding RightEyeAreaCoeff, UpdateSourceTrigger=LostFocus}" Width="120"/>
2026-03-25 21:34:41 +08:00
<Label Grid.Row="2" Grid.Column="0" Content="保存率矫正系数"/>
2026-04-01 21:30:13 +08:00
<TextBox x:Name="txtSaveRateCorrectionCoeff" Grid.Row="2" Grid.Column="1" Text="{Binding SaveRateCorrectionCoeff, UpdateSourceTrigger=LostFocus}" Width="120"/>
2026-03-25 21:34:41 +08:00
</Grid>
</GroupBox>
<!-- 中灯数据组 -->
2026-04-01 20:29:45 +08:00
<GroupBox Header="💡 中灯数据">
2026-03-25 21:34:41 +08:00
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
2026-04-01 20:29:45 +08:00
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
2026-03-25 21:34:41 +08:00
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
2026-04-01 20:29:45 +08:00
<!-- 第1行 -->
2026-03-25 21:34:41 +08:00
<Label Grid.Row="0" Grid.Column="0" Content="中灯1"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtMiddleLamp1" Grid.Row="0" Grid.Column="1" Text="{Binding MiddleLamp1, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-04-01 20:29:45 +08:00
<Label Grid.Row="0" Grid.Column="2" Content="中灯5"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtMiddleLamp5" Grid.Row="0" Grid.Column="3" Text="{Binding MiddleLamp5, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
2026-04-01 20:29:45 +08:00
<!-- 第2行 -->
2026-03-25 21:34:41 +08:00
<Label Grid.Row="1" Grid.Column="0" Content="中灯2"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtMiddleLamp2" Grid.Row="1" Grid.Column="1" Text="{Binding MiddleLamp2, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-04-01 20:29:45 +08:00
<Label Grid.Row="1" Grid.Column="2" Content="中灯6"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtMiddleLamp6" Grid.Row="1" Grid.Column="3" Text="{Binding MiddleLamp6, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
2026-04-01 20:29:45 +08:00
<!-- 第3行 -->
2026-03-25 21:34:41 +08:00
<Label Grid.Row="2" Grid.Column="0" Content="中灯3"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtMiddleLamp3" Grid.Row="2" Grid.Column="1" Text="{Binding MiddleLamp3, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-04-01 20:29:45 +08:00
<Label Grid.Row="2" Grid.Column="2" Content="中灯7"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtMiddleLamp7" Grid.Row="2" Grid.Column="3" Text="{Binding MiddleLamp7, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
2026-04-01 20:29:45 +08:00
<!-- 第4行 -->
2026-03-25 21:34:41 +08:00
<Label Grid.Row="3" Grid.Column="0" Content="中灯4"/>
2026-04-01 21:30:13 +08:00
<TextBox IsReadOnly="True" Name="txtMiddleLamp4" Grid.Row="3" Grid.Column="1" Text="{Binding MiddleLamp4, UpdateSourceTrigger=LostFocus}" Width="80"/>
2026-03-25 21:34:41 +08:00
</Grid>
</GroupBox>
</StackPanel>
</ScrollViewer>
<!-- 右侧控制区 -->
<StackPanel Grid.Column="1" Margin="12,0,0,0">
2026-04-01 20:29:45 +08:00
<!-- 电机状态 -->
<GroupBox Header="⚙️ 电机状态">
2026-03-25 21:34:41 +08:00
<StackPanel Margin="5">
2026-04-01 20:29:45 +08:00
<Label Content="电机限位" FontWeight="SemiBold"/>
2026-04-01 21:30:13 +08:00
<TextBox x:Name="txtMotorLimit" Text="{Binding MotorLimit, UpdateSourceTrigger=LostFocus}" Height="28" Margin="0,0,0,12"/>
2026-04-01 20:29:45 +08:00
<Label Content="复位补偿" FontWeight="SemiBold"/>
2026-04-01 21:30:13 +08:00
<TextBox x:Name="txtResetCompensation" Text="{Binding ResetCompensation, UpdateSourceTrigger=LostFocus}" Height="28" Margin="0,0,0,12"/>
2026-04-01 20:29:45 +08:00
<!--<Button Content="💾 保存参数" Command="{Binding SaveParametersCommand}" Margin="0,5" Background="#4CAF50"/>
<Button Content="🔄 读取参数" Command="{Binding LoadParametersCommand}" Margin="0,5" Background="#FF9800"/>-->
2026-03-25 21:34:41 +08:00
</StackPanel>
</GroupBox>
<!-- 控制按钮组 -->
2026-04-01 20:29:45 +08:00
<GroupBox Header="🎮 设备控制">
2026-03-25 21:34:41 +08:00
<WrapPanel Margin="5">
2026-04-01 20:29:45 +08:00
<Button Content="🔄 复位" Command="{Binding ResetCommand}" Width="80" Background="#607D8B"/>
<Button Content="👁️ 左眼开" Command="{Binding OpenLeftEyeCommand}" Width="80" Background="#4CAF50"/>
<Button Content="↩️ 反转" Command="{Binding ReverseCommand}" Width="80" Background="#FF9800"/>
<Button Content="👁️ 右眼开" Command="{Binding OpenRightEyeCommand}" Width="80" Background="#4CAF50"/>
<Button Content="↪️ 正转" Command="{Binding ForwardCommand}" Width="80" Background="#FF9800"/>
2026-03-25 21:34:41 +08:00
</WrapPanel>
</GroupBox>
2026-04-01 20:29:45 +08:00
<!-- 通信状态 -->
2026-04-01 21:30:13 +08:00
<!--<GroupBox Header="📡 通信状态">
2026-04-01 20:29:45 +08:00
<Border Background="#F8F9FA" CornerRadius="4" Padding="10" Margin="5">
<StackPanel>
<Ellipse Width="12" Height="12" Fill="{Binding StatusColor}" Margin="0,0,0,5" HorizontalAlignment="Left"/>
<TextBlock Text="{Binding CommunicationStatus}" FontWeight="Bold" Foreground="{Binding StatusColor}" TextWrapping="Wrap"/>
</StackPanel>
</Border>
2026-04-01 21:30:13 +08:00
</GroupBox>-->
2026-03-25 21:34:41 +08:00
</StackPanel>
</Grid>
<!-- 底部导航栏 -->
2026-04-01 20:29:45 +08:00
<Border Grid.Row="2" Background="White" CornerRadius="6" Padding="10" Margin="0,12,0,0" BorderBrush="#E9ECF0" BorderThickness="1">
<WrapPanel HorizontalAlignment="Center">
<Button Content="🏠 主页" Command="{Binding NavigateHomeCommand}" Width="100" Background="#607D8B"/>
<Button Content="🧪 测试界面" Command="{Binding NavigateTestCommand}" Width="100" Background="#2196F3"/>
<Button Content="📊 数据记录" Command="{Binding NavigateDataRecordCommand}" Width="100" Background="#4CAF50"/>
<Button Content="📸 记录画面" Command="{Binding NavigateRecordScreenCommand}" Width="100" Background="#FF9800"/>
</WrapPanel>
</Border>
2026-03-25 21:34:41 +08:00
</Grid>
</Window>