Files
FootwearTest-20260602/Footwear Test methodsfor wholeshoe Slipresistanceperformance/Views/MainWindow.axaml
GukSang.Jin 2fc1dd89a2 更新2026
2026-06-08 18:49:29 +08:00

521 lines
32 KiB
XML

<suki:SukiWindow xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:Footwear_Test_methodsfor_wholeshoe_Slipresistanceperformance.ViewModels"
xmlns:model="using:Footwear_Test_methodsfor_wholeshoe_Slipresistanceperformance.Models"
xmlns:lvc="using:LiveChartsCore.SkiaSharpView.Avalonia"
xmlns:suki="using:SukiUI.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignWidth="1024"
d:DesignHeight="768"
x:Class="Footwear_Test_methodsfor_wholeshoe_Slipresistanceperformance.Views.MainWindow"
x:DataType="vm:MainWindowViewModel"
Icon="/Assets/avalonia-logo.ico"
WindowState="Maximized"
Width="1024"
Height="768"
Title="鞋类 整鞋试验方法 防滑性能测定-GB/T 3903.6-2024"
Background="#F4F7FB"
BackgroundAnimationEnabled="False"
ShowBottomBorder="True"
IsMenuVisible="False"
RootCornerRadius="0"
TitleFontSize="15"
TitleFontWeight="SemiBold">
<Design.DataContext>
<vm:MainWindowViewModel/>
</Design.DataContext>
<suki:SukiWindow.RightWindowTitleBarControls>
<Button Classes="title-icon"
Content="&#xE713;"
FontFamily="Segoe MDL2 Assets"
Command="{Binding ShowSettingsDialogCommand}"
ToolTip.Tip="设置"/>
</suki:SukiWindow.RightWindowTitleBarControls>
<suki:SukiWindow.Resources>
<SolidColorBrush x:Key="PanelBrush" Color="#FFFFFF"/>
<SolidColorBrush x:Key="PanelSoftBrush" Color="#F8FAFD"/>
<SolidColorBrush x:Key="TextPrimaryBrush" Color="#172033"/>
<SolidColorBrush x:Key="TextSecondaryBrush" Color="#67738A"/>
<SolidColorBrush x:Key="LineBrush" Color="#DCE4EF"/>
<SolidColorBrush x:Key="ControlFillBrush" Color="#F2F6FB"/>
<SolidColorBrush x:Key="AccentBrush" Color="#2563EB"/>
<SolidColorBrush x:Key="SuccessBrush" Color="#0F9F6E"/>
<SolidColorBrush x:Key="WarnBrush" Color="#D97706"/>
<SolidColorBrush x:Key="DangerBrush" Color="#DC2626"/>
</suki:SukiWindow.Resources>
<suki:SukiWindow.Styles>
<Style Selector="TextBlock">
<Setter Property="FontFamily" Value="Microsoft YaHei UI, Inter"/>
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
</Style>
<Style Selector="Border.panel">
<Setter Property="Background" Value="{StaticResource PanelBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource LineBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="CornerRadius" Value="8"/>
<Setter Property="Padding" Value="10"/>
</Style>
<Style Selector="Border.header-panel">
<Setter Property="Background" Value="#EDF4FF"/>
<Setter Property="BorderBrush" Value="#C9DAF8"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="CornerRadius" Value="8"/>
<Setter Property="Padding" Value="14"/>
</Style>
<Style Selector="Border.metric">
<Setter Property="Background" Value="{StaticResource PanelSoftBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource LineBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="CornerRadius" Value="8"/>
<Setter Property="Padding" Value="12"/>
</Style>
<Style Selector="TextBox, ComboBox">
<Setter Property="MinHeight" Value="34"/>
<Setter Property="FontSize" Value="15"/>
<Setter Property="Background" Value="{StaticResource ControlFillBrush}"/>
<Setter Property="BorderBrush" Value="#C9D5E7"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="10,6"/>
</Style>
<Style Selector="TextBox.setting-value">
<Setter Property="MinHeight" Value="40"/>
<Setter Property="FontSize" Value="20"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="Watermark" Value="0.00"/>
</Style>
<Style Selector="Label.setting-label">
<Setter Property="FontSize" Value="16"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="{StaticResource TextSecondaryBrush}"/>
<Setter Property="Padding" Value="0"/>
</Style>
<Style Selector="TextBlock.setting-unit">
<Setter Property="FontSize" Value="16"/>
<Setter Property="FontWeight" Value="SemiBold"/>
</Style>
<Style Selector="Button">
<Setter Property="MinHeight" Value="44"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="CornerRadius" Value="8"/>
<Setter Property="Padding" Value="14,8"/>
</Style>
<Style Selector="Button.compact">
<Setter Property="MinHeight" Value="34"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="Padding" Value="8,4"/>
</Style>
<Style Selector="Button.action">
<Setter Property="MinHeight" Value="42"/>
<Setter Property="FontSize" Value="15"/>
<Setter Property="Padding" Value="10,6"/>
</Style>
<Style Selector="Button.side-action">
<Setter Property="MinHeight" Value="48"/>
<Setter Property="FontSize" Value="18"/>
<Setter Property="Padding" Value="8,6"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
<Style Selector="Button.title-icon">
<Setter Property="Width" Value="34"/>
<Setter Property="Height" Value="30"/>
<Setter Property="MinHeight" Value="30"/>
<Setter Property="FontSize" Value="15"/>
<Setter Property="FontWeight" Value="Normal"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="CornerRadius" Value="6"/>
<Setter Property="Background" Value="#EAF1FA"/>
<Setter Property="BorderBrush" Value="#CBD8EA"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
</Style>
<Style Selector="Button.primary">
<Setter Property="Background" Value="{StaticResource AccentBrush}"/>
<Setter Property="Foreground" Value="White"/>
</Style>
<Style Selector="Button.success">
<Setter Property="Background" Value="{StaticResource SuccessBrush}"/>
<Setter Property="Foreground" Value="White"/>
</Style>
<Style Selector="Button.warning">
<Setter Property="Background" Value="{StaticResource WarnBrush}"/>
<Setter Property="Foreground" Value="White"/>
</Style>
<Style Selector="Button.danger">
<Setter Property="Background" Value="{StaticResource DangerBrush}"/>
<Setter Property="Foreground" Value="White"/>
</Style>
<Style Selector="Button.motion">
<Setter Property="Background" Value="#EEF6F2"/>
<Setter Property="BorderBrush" Value="#B8DEC7"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="#13784D"/>
</Style>
<Style Selector="TextBlock.section-title">
<Setter Property="FontSize" Value="18"/>
<Setter Property="FontWeight" Value="SemiBold"/>
</Style>
<Style Selector="TextBlock.caption">
<Setter Property="FontSize" Value="12"/>
<Setter Property="Foreground" Value="{StaticResource TextSecondaryBrush}"/>
</Style>
<Style Selector="TextBlock.value">
<Setter Property="FontSize" Value="24"/>
<Setter Property="FontWeight" Value="SemiBold"/>
</Style>
</suki:SukiWindow.Styles>
<Grid RowDefinitions="*"
MaxWidth="1264"
HorizontalAlignment="Stretch"
Margin="8"
ClipToBounds="True">
<Grid Grid.Row="0" RowDefinitions="Auto,*" RowSpacing="8">
<Border Classes="panel">
<Grid ColumnDefinitions="1.2*,1.15*" ColumnSpacing="14">
<Grid RowDefinitions="Auto,Auto,Auto" ColumnDefinitions="Auto,*,Auto,*" RowSpacing="6" ColumnSpacing="8">
<TextBlock Text="试验编号" VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryBrush}"/>
<TextBox Grid.Column="1" Text="{Binding TestNumber}"/>
<TextBlock Grid.Column="2" Text="操作人员" VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryBrush}"/>
<TextBox Grid.Column="3" Text="{Binding OperatorName}" Watermark="请输入"/>
<TextBlock Grid.Row="1" Text="鞋码区间" VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryBrush}"/>
<ComboBox Grid.Row="1" Grid.Column="1" SelectedIndex="{Binding SelectedShoeSizeIndex}">
<ComboBoxItem Content="250(含)以上 - 400N"/>
<ComboBoxItem Content="205-250 - 350N"/>
<ComboBoxItem Content="205以下 - 160N"/>
</ComboBox>
<TextBlock Grid.Row="1" Grid.Column="2" Text="润滑介质" VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryBrush}"/>
<ComboBox Grid.Row="1" Grid.Column="3" SelectedIndex="{Binding SelectedLubricantIndex}">
<ComboBoxItem Content="干态"/>
<ComboBoxItem Content="湿态 - 蒸馏水"/>
<ComboBoxItem Content="湿态 - 洗涤剂"/>
<ComboBoxItem Content="冰霜"/>
</ComboBox>
<TextBlock Grid.Row="2" Text="测试模式" VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryBrush}"/>
<ComboBox Grid.Row="2" Grid.Column="1" SelectedIndex="{Binding SelectedModeIndex}">
<ComboBoxItem Content="后跟测试模式"/>
<ComboBoxItem Content="前掌测试模式"/>
<ComboBoxItem Content="水平测试模式"/>
</ComboBox>
<TextBlock Grid.Row="2" Grid.Column="2" Text="测试方法" VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryBrush}"/>
<TextBox Grid.Row="2" Grid.Column="3" Text="{Binding MethodName}"/>
</Grid>
<Grid Grid.Column="1" RowDefinitions="Auto,Auto,Auto" ColumnDefinitions="Auto,*" RowSpacing="6" ColumnSpacing="8">
<TextBlock Text="报告名称" VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryBrush}"/>
<TextBox Grid.Column="1" Text="{Binding ReportName}" Watermark="例: 防滑性能报告"/>
<TextBlock Grid.Row="1" Text="样品特征" VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryBrush}"/>
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding SampleFeature}" Watermark="鞋底材料、花纹、尺码"/>
<TextBlock Grid.Row="2" Text="地面材质" VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryBrush}"/>
<ComboBox Grid.Row="2" Grid.Column="1" SelectedIndex="{Binding SelectedSurfaceIndex}">
<ComboBoxItem Content="瓷砖"/>
<ComboBoxItem Content="木地板"/>
<ComboBoxItem Content="石材"/>
<ComboBoxItem Content="冰霜表面"/>
</ComboBox>
</Grid>
</Grid>
</Border>
<DockPanel Grid.Row="1" LastChildFill="True" MinHeight="0" ClipToBounds="True">
<Border DockPanel.Dock="Left" Width="280" Classes="panel" Margin="0,0,10,0">
<Grid RowDefinitions="Auto,Auto,Auto,*" RowSpacing="8">
<Grid ColumnDefinitions="*,Auto" Margin="0,-4,0,0">
<TextBlock Text="实时数据"
Classes="section-title"
VerticalAlignment="Center"/>
<StackPanel Grid.Column="1" Orientation="Horizontal" Spacing="4" VerticalAlignment="Center">
<TextBlock Text="完整测试" Classes="caption" VerticalAlignment="Center"/>
<TextBlock Text="{Binding CompletedTestCount}" FontWeight="SemiBold" Foreground="#1D4ED8" VerticalAlignment="Center"/>
<TextBlock Text="次" Classes="caption" VerticalAlignment="Center"/>
</StackPanel>
</Grid>
<Border Grid.Row="1"
Background="#F8FAFD"
BorderBrush="{StaticResource LineBrush}"
BorderThickness="1"
CornerRadius="8"
Padding="8,6">
<Grid ColumnDefinitions="*,*,*">
<StackPanel Orientation="Horizontal" Spacing="3" HorizontalAlignment="Center">
<TextBlock Text="干态" Classes="caption"/>
<TextBlock Text="{Binding DryTestCount}" FontWeight="SemiBold" Foreground="#047857"/>
<TextBlock Text="次" Classes="caption"/>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Horizontal" Spacing="3" HorizontalAlignment="Center">
<TextBlock Text="湿态" Classes="caption"/>
<TextBlock Text="{Binding WetTestCount}" FontWeight="SemiBold" Foreground="#1D4ED8"/>
<TextBlock Text="次" Classes="caption"/>
</StackPanel>
<StackPanel Grid.Column="2" Orientation="Horizontal" Spacing="3" HorizontalAlignment="Center">
<TextBlock Text="冰霜" Classes="caption"/>
<TextBlock Text="{Binding FrostTestCount}" FontWeight="SemiBold" Foreground="#7E22CE"/>
<TextBlock Text="次" Classes="caption"/>
</StackPanel>
</Grid>
</Border>
<Border Grid.Row="2"
Background="#F8FAFD"
BorderBrush="{StaticResource LineBrush}"
BorderThickness="1"
CornerRadius="8"
Padding="8">
<Grid ColumnDefinitions="*,78" ColumnSpacing="8">
<Grid RowDefinitions="Auto,Auto" ColumnDefinitions="Auto,*,Auto" RowSpacing="8" ColumnSpacing="8">
<TextBlock Text="目标负荷" VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryBrush}"/>
<TextBlock Grid.Column="1" Text="{Binding TargetLoadText}" VerticalAlignment="Center" HorizontalAlignment="Right" FontWeight="SemiBold" Foreground="#1D4ED8"/>
<TextBlock Grid.Column="2" Text="" VerticalAlignment="Center"/>
<TextBlock Grid.Row="1" Text="实际负荷" VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryBrush}"/>
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding ActualLoadText}" VerticalAlignment="Center" HorizontalAlignment="Right" FontWeight="SemiBold" Foreground="#1D4ED8"/>
<TextBlock Grid.Row="1" Grid.Column="2" Text="" VerticalAlignment="Center"/>
</Grid>
<Grid Grid.Column="1" RowDefinitions="Auto,Auto" ColumnDefinitions="Auto,*" RowSpacing="6" ColumnSpacing="6">
<Button Grid.ColumnSpan="2" Content="删除" Classes="danger compact" Command="{Binding DeleteSelectedSampleCommand}"/>
<TextBlock Grid.Row="1" Text="序号" VerticalAlignment="Center" FontSize="12" Foreground="{StaticResource TextSecondaryBrush}"/>
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding SelectedSampleIndex}" MinHeight="34" FontSize="13" HorizontalContentAlignment="Center"/>
</Grid>
</Grid>
</Border>
<ScrollViewer Grid.Row="3"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto"
ClipToBounds="True">
<StackPanel MinWidth="292">
<Grid ColumnDefinitions="50,98,72,72" Background="#F0F5FB" Height="36">
<TextBlock Text="序号" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="SemiBold"/>
<TextBlock Grid.Column="1" Text="时间" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="SemiBold"/>
<TextBlock Grid.Column="2" Text="动系数" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="SemiBold"/>
<TextBlock Grid.Column="3" Text="静系数" HorizontalAlignment="Center" VerticalAlignment="Center" FontWeight="SemiBold"/>
</Grid>
<ItemsControl ItemsSource="{Binding Samples}">
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="model:TestSample">
<Border BorderBrush="{StaticResource LineBrush}" BorderThickness="0,0,0,1" Padding="0,6">
<Grid ColumnDefinitions="50,98,72,72">
<TextBlock Text="{Binding Index}" HorizontalAlignment="Center" FontSize="15" Foreground="#334155"/>
<TextBlock Grid.Column="1" Text="{Binding Time}" HorizontalAlignment="Center" FontSize="15" Foreground="#1D4ED8"/>
<TextBlock Grid.Column="2" Text="{Binding DynamicCoefficient}" HorizontalAlignment="Center" FontSize="15" Foreground="#047857"/>
<TextBlock Grid.Column="3" Text="{Binding StaticCoefficient}" HorizontalAlignment="Center" FontSize="15" Foreground="#5B21B6"/>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ScrollViewer>
</Grid>
</Border>
<Border DockPanel.Dock="Right" Width="132" Classes="panel" ClipToBounds="True" Padding="8" Margin="10,0,0,0" MinHeight="0">
<ScrollViewer VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled"
ClipToBounds="True">
<StackPanel Spacing="8">
<TextBlock Text="控制"
Classes="section-title"
HorizontalAlignment="Center"
Margin="0,-2,0,0"/>
<Button Content="{Binding ResetButtonText}"
Classes="side-action"
Command="{Binding ClearCommand}"/>
<Button Content="{Binding TestButtonText}"
Classes="success side-action"
IsEnabled="{Binding IsTestButtonEnabled}"
Command="{Binding StartTestCommand}"/>
<Button Content="停止"
Classes="danger side-action"
Command="{Binding StopTestCommand}"/>
<Button Content="导出"
Classes="primary side-action"
Command="{Binding ExportReportCommand}"/>
<Border Height="1" Background="{StaticResource LineBrush}" Margin="0,4"/>
<TextBlock Text="垂直架"
FontWeight="SemiBold"
HorizontalAlignment="Center"
Foreground="{StaticResource TextSecondaryBrush}"/>
<Button Content="提升"
Classes="motion side-action"
Command="{Binding LiftMotionCommand}"/>
<Button Content="下降"
Classes="motion side-action"
Command="{Binding LowerMotionCommand}"/>
<Border Height="1" Background="{StaticResource LineBrush}" Margin="0,4"/>
<TextBlock Text="水平板"
FontWeight="SemiBold"
HorizontalAlignment="Center"
Foreground="{StaticResource TextSecondaryBrush}"/>
<Button Content="左移"
Classes="motion side-action"
Command="{Binding MoveLeftMotionCommand}"/>
<Button Content="右移"
Classes="motion side-action"
Command="{Binding MoveRightMotionCommand}"/>
</StackPanel>
</ScrollViewer>
</Border>
<Border Classes="panel" ClipToBounds="True" MinHeight="0">
<Grid RowDefinitions="Auto,*" RowSpacing="8">
<Grid ColumnDefinitions="*" MinHeight="30" VerticalAlignment="Top">
<TextBlock Text="实时曲线" Classes="section-title" VerticalAlignment="Center"/>
</Grid>
<Border Grid.Row="1" Background="#FBFDFF" BorderBrush="{StaticResource LineBrush}" BorderThickness="1" CornerRadius="8" Padding="8" MinHeight="0">
<lvc:CartesianChart Series="{Binding Series}"
XAxes="{Binding XAxes}"
YAxes="{Binding YAxes}"
DrawMarginFrame="{Binding ChartFrame}"
LegendTextPaint="{Binding LegendTextPaint}"
LegendTextSize="10"
LegendPosition="Bottom"
TooltipPosition="Top"
ZoomMode="X"
MinHeight="0"/>
</Border>
</Grid>
</Border>
</DockPanel>
</Grid>
<Grid IsVisible="{Binding IsSettingsDialogOpen}"
Background="#800F172A">
<Border Width="760"
Background="{StaticResource PanelBrush}"
BorderBrush="{StaticResource LineBrush}"
BorderThickness="1"
CornerRadius="8"
Padding="18"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Grid RowDefinitions="Auto,Auto,Auto,Auto" RowSpacing="16">
<Grid ColumnDefinitions="*,Auto">
<StackPanel Spacing="2">
<TextBlock Text="设置" Classes="section-title"/>
<TextBlock Text="设备连接、试验参数与系统选项" Classes="caption"/>
</StackPanel>
<Button Grid.Column="1"
Content="关闭"
Classes="compact"
Command="{Binding CloseSettingsDialogCommand}"/>
</Grid>
<Grid Grid.Row="1"
RowDefinitions="Auto,Auto,Auto,Auto,Auto,8,Auto,Auto,Auto"
ColumnDefinitions="Auto,150,Auto,24,Auto,150"
RowSpacing="10"
ColumnSpacing="12">
<Label Content="手动速度" Classes="setting-label" VerticalAlignment="Center"/>
<TextBox Grid.Column="1" Classes="setting-value" Text="{Binding ManualSpeed, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
<TextBlock Grid.Column="2" Text="m/s" Classes="setting-unit" VerticalAlignment="Center"/>
<Label Grid.Row="1" Content="手动位移" Classes="setting-label" VerticalAlignment="Center"/>
<TextBox Grid.Row="1" Grid.Column="1" Classes="setting-value" Text="{Binding ManualDisplacement, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
<TextBlock Grid.Row="1" Grid.Column="2" Text="m" Classes="setting-unit" VerticalAlignment="Center"/>
<Label Grid.Row="2" Content="测试速度" Classes="setting-label" VerticalAlignment="Center"/>
<TextBox Grid.Row="2" Grid.Column="1" Classes="setting-value" Text="{Binding TestSpeed, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
<TextBlock Grid.Row="2" Grid.Column="2" Text="m/s" Classes="setting-unit" VerticalAlignment="Center"/>
<Label Grid.Row="3" Content="PLC串口" Classes="setting-label" VerticalAlignment="Center"/>
<TextBox Grid.Row="3" Grid.Column="1" Classes="setting-value" Text="{Binding PlcPortName, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
<Label Grid.Row="3" Grid.Column="4" Content="ADC串口" Classes="setting-label" VerticalAlignment="Center"/>
<TextBox Grid.Row="3" Grid.Column="5" Classes="setting-value" Text="{Binding AdcPortName, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
<Label Grid.Row="4" Content="波特率" Classes="setting-label" VerticalAlignment="Center"/>
<TextBox Grid.Row="4" Grid.Column="1" Classes="setting-value" Text="{Binding BaudRate, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
<Border Grid.Row="5" Grid.ColumnSpan="6" Height="1" Background="{StaticResource LineBrush}" Margin="0,4"/>
<Label Grid.Row="6" Content="正压力零点" Classes="setting-label" VerticalAlignment="Center"/>
<TextBox Grid.Row="6" Grid.Column="1" Classes="setting-value" Text="{Binding NormalPressureZero, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
<Button Grid.Row="6" Grid.Column="2" Content="采零" Classes="compact" Command="{Binding CalibrateNormalPressureZeroCommand}"/>
<Label Grid.Row="6" Grid.Column="4" Content="正压力系数" Classes="setting-label" VerticalAlignment="Center"/>
<TextBox Grid.Row="6" Grid.Column="5" Classes="setting-value" Text="{Binding NormalPressureCoefficient, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
<Label Grid.Row="7" Content="摩擦1零点" Classes="setting-label" VerticalAlignment="Center"/>
<TextBox Grid.Row="7" Grid.Column="1" Classes="setting-value" Text="{Binding FrictionZero1, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
<Button Grid.Row="7" Grid.Column="2" Content="摩擦采零" Classes="compact" Command="{Binding CalibrateFrictionZeroCommand}"/>
<Label Grid.Row="7" Grid.Column="4" Content="摩擦1系数" Classes="setting-label" VerticalAlignment="Center"/>
<TextBox Grid.Row="7" Grid.Column="5" Classes="setting-value" Text="{Binding FrictionCoefficient1, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
<Label Grid.Row="8" Content="摩擦2零点" Classes="setting-label" VerticalAlignment="Center"/>
<TextBox Grid.Row="8" Grid.Column="1" Classes="setting-value" Text="{Binding FrictionZero2, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
<Label Grid.Row="8" Grid.Column="4" Content="摩擦2系数" Classes="setting-label" VerticalAlignment="Center"/>
<TextBox Grid.Row="8" Grid.Column="5" Classes="setting-value" Text="{Binding FrictionCoefficient2, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
</Grid>
<Grid Grid.Row="2"
RowDefinitions="Auto,Auto"
ColumnDefinitions="Auto,*"
RowSpacing="10"
ColumnSpacing="12">
<TextBlock Text="设备状态" Classes="setting-unit" VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryBrush}"/>
<TextBlock Grid.Column="1" Text="{Binding DeviceStatus}" Classes="setting-unit" VerticalAlignment="Center"/>
<TextBlock Grid.Row="1" Text="采样频率" Classes="setting-unit" VerticalAlignment="Center" Foreground="{StaticResource TextSecondaryBrush}"/>
<Border Grid.Row="1" Grid.Column="1" Background="{StaticResource ControlFillBrush}" BorderBrush="#C9D5E7" BorderThickness="1" CornerRadius="6" Padding="10,7">
<TextBlock Text="{Binding SampleRateText}" Classes="setting-unit"/>
</Border>
</Grid>
<Border Grid.Row="3"
Background="#F8FAFD"
BorderBrush="{StaticResource LineBrush}"
BorderThickness="1"
CornerRadius="8"
Padding="12">
<TextBlock Text="{Binding StandardReference}" TextWrapping="Wrap" Classes="caption"/>
</Border>
</Grid>
</Border>
</Grid>
</Grid>
</suki:SukiWindow>